Shell 传输文件的脚本

Shell script to transfer files

我有一个 shell 脚本,它启动一个 For 循环,从一个带有主机名的文本文件中读取,并使用 SCP 将文件传输到每个主机。它非常有用,但处理密码提示的最佳方法是什么?服务器给我的唯一身份验证是用户名和密码。

到目前为止,我必须为每台服务器输入密码。由于服务器数量很少,所以它是双重的,但我希望将来有更好的解决方案。任何 help/suggestions 都很好。

谢谢!

大多数服务器还支持公钥身份验证。 Generate a keypair 在您的本地主机上,然后将 ~/.ssh/id_rsa_pub 复制到远程主机的 ~/.ssh/authorized_keys(如果它已经存在,则附加到它)。使用 ssh-agent.

处理锁定您的密钥的关键字

对于这种交互操作,您可以使用 Expect 脚本。您可以轻松地定义一个您期望特定字符串 (f.e "username:") 的远程调用,然后发送已知密码。