【发布时间】:2015-10-04 08:42:52
【问题描述】:
我正在研究如何最好地创建一个接受用户名、密码和主机作为输入的 bash 脚本,然后可以使用 ssh/rsync/scp 进行连接。这些程序似乎只接受用户通过提示输入的密码。
注意:我非常熟悉 SSH 密钥 - 我的用例是这样一种情况,即希望以编程方式将 SSH 密钥放置到不存在密钥的服务器上。
我目前的解决方案是使用expect 以正确的密码回答密码提示(并提供所有其他信息作为参数)。
【问题讨论】:
-
您可能还对复制 ssh 密钥的
ssh-copy-id [user@]machine感兴趣(是的,它会提示您输入密码)。 -
@meuh 来放大您的评论,您只需为每台目标机器运行一次
ssh-copy-id。因此,虽然它会提示输入密码,但您可以一次完成所有操作,而不必再担心它们。 -
这些都是好点;但是我的用例是在一个自动化脚本中,其中创建了许多服务器,并且我在创建过程中收到了每个服务器的 root 密码(在 API 响应中)。每个服务器的密码都不同。不过,在期望脚本中使用 ssh-copy-id 可能会很有趣……