要解决问题

有些站点不提供sshkey登录,只让你用密码登录。因为ssh命令不让在命令行直接明文你给密码,所以每次登录要输入密码很不方便。

解决方法

受到这篇文章启发: http://linuxtoy.org/archives/sshpass.html , 用sshpass可以解决。请阅读该文行。

更新我 .bash_alias 下面内容

以前是:
alias sshsrv01='ssh 404@某服务器ip -p端口号'
这样输入 sshsrv01(就是ssh到sever01的简写 :),实际运行一个ssh登录命令,但需要输入密码才能登入。因为ssh命令不让你直接在命令行输入密码。

现在该行更新为:

  alias sshsrv01='sshpass -p 'ssh登录密码' ssh 404@某服务器ip -p端口号'

sshpass -p 可以让你在后面直接跟登录密码,密码要放在英文单引号中。

现在再次输入 sshsrv01, 直接就登录到server01上了,无须输入密码。和使用sshkey达到的效果一样。

注意

  • alias命令整体要放在英文单引号中。所以,命令中有2对单引号。**
  • 在登录时,sshpass让你觉得和用sshkey登录一样,但安全性上,passwd-based和key-based是不一样的。当然key-based安全!
  • 是否能运用到scp和rsync中我还没有试验。谁用了请说明。