我可以将 rsa 密钥复制到远程服务器以实现无密码登录。但有人告诉我,还有另一种方法可以使用 ssh-agent 添加此功能。我运行了 ssh-agent 命令生成的命令。我确实尝试使用 ssh-add 添加密钥
$ ssh-add
Enter passphrase for /home/shantanu/.ssh/id_dsa:
Identity added: /home/shantanu/.ssh/id_dsa (/home/shantanu/.ssh/id_dsa)
ssh-agent 是否按照我尝试的方式工作?
答案1
您想要这样做的原因可能是因为您想在远程服务器上自动执行某些操作。使用 ssh-agent 或类似的东西可能不是选择,因为您也必须以自动方式输入密码。
使用没有密码的密钥可以完成任务,但这样做很危险。因此,如果您不使用密码执行此操作:
- 不要使用特权账户
- 您可以将操作限制为 authorized_keys 文件中的单个命令
- 如果需要复制:使用转账账户,并使用另一个本地账户从转账账户获取数据
答案2
如果您的密钥没有密码(这通常是件坏事),则您不需要 ssh-agent。您只需将公钥放入 authorized_keys 文件中即可。
但是,如果你的密钥有密码,那么你可以使用 ssh-agent(以及将公钥放入 authorized_keys 文件中),添加一次密码(如上所述),然后该会议的剩余时间您不必再次使用它。对于新会话,您必须再次添加它,这通常只是一点不方便。