【随笔】ssh登录时如何直接在参数中加入登录密码


  如同apt-get安装程序时会有-y参数来避免交互输入一样,我也希望在ssh登录时能够直接附加登录密码以避免交互式输入密码这一步,网上找了找,方法很多。

  比如直接通过密钥免密码登录,不过需要改动很多,感觉很麻烦。这里更想要的是不改动server/client的配置下直接免交互式ssh登录。

  于是我先查看帮助:

  

  这里没有可用参数能够附加登录密码,于是继续找办法。


  sshpass

  sshpass: 用于非交互的ssh 密码验证

  ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取。

  办法找到了,现在先在自己机器上安装。

  对于debian/ubuntu系统来说,安装方式很简单:

sudo apt-get install sshpass

  对于其他系统来说,可以通过编译源码:

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  

  也可以直接通过访问这个来下载sshpass-1.05.tar.gz文件。

  ./configure 后可以添加参数指定安装目录,比如:

./configure --prefix=/usr/local/Cellar/sshpass/1.05 

  来把sshpass安装到自己喜欢的位置,如果没有这个参数,则安装到默认位置。

  安装好了后,输入sshpass来查看是否安装好了:

  


  这样就可以通过:

sshpass -p [passwd] ssh -p [port] root@192.168.X.X

  来登录远程主机了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM