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