如同apt-get安装程序时会有-y参数来避免交互输入一样,我也希望在ssh登录时能够直接附加登录密码以避免交互式输入密码这一步,网上找了找,方法很多。
比如直接通过密钥免密码登录,不过需要改动很多,感觉很麻烦。这里更想要的是不改动server/client的配置下直接免交互式ssh登录。
解决方案
sshpass
sshpass: 用于非交互的ssh 密码验证,它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取。
// 安装方法
1 wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz
2 tar xvzf sshpass-1.05.tar.gz
3 ./configure
4 make
5 sudo make install
./configure --prefix=/usr/local/Cellar/sshpass/1.05
这样就可以通过以下命令来登录远程主机了。
sshpass -p [passwd] ssh -p [port] root@192.168.X.X