采用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来实现此功能?