我有一个 shell 脚本,它启动一个 For 循环,从带有主机名的文本文件中读取,并使用 SCP 将文件传输到每个主机。这非常有用,但是处理密码提示的最佳方法是什么?我得到服务器的唯一身份验证是用户名和密码。
截至目前,我必须为每个服务器输入密码。由于服务器数量很少,因此它是可重复的,但我希望将来有更好的解决方案。任何帮助/建议都会很棒。
谢谢!
大多数服务器还支持公钥身份验证。在本地主机上生成密钥对,然后将~/.ssh/id_rsa_pub
复制到远程主机的~/.ssh/authorized_keys
(如果已存在,则追加到远程主机)。使用 ssh-agent
处理锁定密钥的关键字。
对于这种交互式操作,您可以使用预期脚本。您可以轻松定义一个远程调用,其中需要特定的字符串(例如"用户名:"),然后发送已知密码。