创建没有密码的密钥后,我可以使用 SSH 登录到我的远程主机:
$ ssh [email protected]
Welcome to Ubuntu 14.04.1...
但是,当我尝试使用 SSH rsync 到同一个远程主机时:
$ sudo rsync -avczr -e ssh /home [email protected]:/destination
它要求我输入 machine.local 上的 root 密码。
为什么 SSH 需要使用密码登录 rsync,而直接连接时却需要使用密钥?如何使 rsync 连接使用密钥工作?
我注意到的一件事可能与之相关,那就是我收到的第一个“无法确定主机的真实性”消息提到了 ECDSA 密钥指纹,而我用于直接连接的密钥是 RSA。
答案1
原来问题出在我使用 调用时rsync
,sudo
因此以 root 身份运行。因此,ssh
调用 viarsync
未使用我的用户~/.ssh/id*
文件,但查找后/root/.ssh/id_*
未找到任何文件。
我将 ~/.ssh/id*
文件复制到/root/.ssh/
,现在它可以正常工作了。