当我制作 ssh 密钥时,我向该密钥添加了一个密码。现在我正在尝试编写一个脚本来运行一些 ssh 和 rsync 命令。不幸的是,由于我的 rsa 密钥上有密码,因此每次都会提示输入密码。有没有一种方法可以提示用户输入密钥密码一次,然后将其重定向到 ssh 命令?
** 这不是 ssh 用户密码。这是密钥的密码**
答案1
您可以使用 ssh 密钥代理。启动代理的命令是:
ssh-agent
然后您必须将密钥添加到代理中。要添加默认密钥 (~/.ssh/id_rsa),您可以使用以下命令:
ssh-add
您必须输入一次密码才能添加密钥。
您可能还想查看此 ServerFault 帖子以获取更多信息:
也许最干净的解决方案是在脚本中添加 ssh-agent shebang,例如:
#!/usr/bin/ssh-agent bash
ssh-add /path/to/ssh-key
ssh root@remotehost "remote commands"
还有很多与使用 ssh 代理相关的问题,因此您可能需要阅读一些有关一般使用建议的文章,例如: