采用SSH远程执行命令


1 问题:Linux系统中的ssh软件不能在直接在一行命令中指定密码,从而无法在脚本中实现登录并。

解决:使用putty软件,其命令行工具为plink,plink 使用如下:

plink [options] [user@]host [command]

其选项部分可以指定采用ssh的方式并指定密码登录远程主机。

安装:

Ubuntu 直接使用sudo apt-get install putty

2 问题:ssh登录远程服务器时,在输入完用户名后需要等很长一段时间才会提示输入密码。

解决:

其实这是由于 sshd 需要反查客户端的 dns 信息导致的。我们可以通过禁用这个特性来

大幅提高登录的速度。首先,打开 sshd_config 文件:

  sudo nano /etc/ssh/sshd_config  

找到 GSSAPI options 这一节,将下面两行注释掉

  #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no然后重新启动 ssh 服

务即可:

  sudo /etc/init.d/ssh restart

3 确认sshserver是否启动了:(或用“netstat -tlp”命令)

  ps -e | grep ssh

  如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。

另外几个思考点:

1 ssh既然已经能够实现用密码登录,那么公钥密钥的作用是什么?

2 能否用ruby来实现此功能?

相关内容