我必须登录超过150个服务器并执行一些unix命令。 问题是,如果我创建一个脚本,它将从一个服务器运行并ssh登录到150服务器并执行cmds并退出。 如何使用任何密码提示登录。 由于某种原因,我不应该使用ssh-keygen公钥和私钥方法,或使用一些额外的工具与bash行像“expect”。
有没有正常的方法可以在单个命令中通过ssh登录,包括用户名/密码@ servername,就像我们在sqlplus和ftp中有选项一样。
答案 0 :(得分:4)
有一个名为sshpass的实用程序,允许您在命令行中指定密码。
使用sudo apt-get install sshpass
sshpass -p 'abcedf' ssh joe@myserver.domain.com "df > ~/test; cat ~/test; rm ~/test;"
希望这会有所帮助
答案 1 :(得分:1)
您可以尝试在每个远程主机上设置~/.shosts
或/etc/ssh/shosts.equiv
。有关详细信息,请参阅“AUTHENTICATION”下的man ssh
。