2016-04-22 112 views
0

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

截至目前,我不得不输入我的密码为每个服务器。由于服务器数量很少,所以它一直是可执行的,但我希望在未来有更好的解决方案。任何帮助/建议都会很棒。

谢谢!

回答

1

大多数服务器还支持publickey认证。 Generate a keypair,然后将~/.ssh/id_rsa_pub复制到远程主机的~/.ssh/authorized_keys(如果它已经存在,则附加到它)。通过使用ssh-agent来处理锁定您的密钥的keyphrase。

0

对于这种交互式操作,您可以使用Expect脚本。您可以轻松地定义远程呼叫,您希望获得特定字符串(f.e“username:”),然后发送已知密码。