-1

我必须登录超过 150 个服务器并执行一些 unix 命令。问题是,如果我创建一个脚本,它将从一台服务器运行并 ssh 登录到 150 服务器并执行 cmds 并退出。我如何使用任何密码提示登录。由于某种原因,我不应该使用 ssh-keygen 公钥和私钥方法,或者使用一些带有 bash 行的额外工具,如“expect”。

是否有任何正常的方法可以通过 ssh 在包含用户名/密码@服务器名的单个命令中进行登录,就像我们在 sqlplus 和 ftp 中的选项一样。

4

2 回答 2

4

有一个名为 sshpass 的实用程序允许您在命令行中指定密码。

在 Ubuntu/Debian 下使用安装sudo apt-get install sshpass

sshpass -p 'abcedf' ssh joe@myserver.domain.com "df > ~/test; cat ~/test; rm ~/test;"

希望这可以帮助

于 2012-05-29T11:07:40.287 回答
1

您可以尝试在每个远程主机上设置~/.shosts或设置。/etc/ssh/shosts.equiv有关详细信息,请参阅man ssh“身份验证”部分。

于 2012-05-30T15:53:30.050 回答