![复制文件时所需的密钥密码](https://linux22.com/image/24035/%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%E6%97%B6%E6%89%80%E9%9C%80%E7%9A%84%E5%AF%86%E9%92%A5%E5%AF%86%E7%A0%81.png)
我通常会收到输入密码的提示,但这次我的终端要求输入密钥的密码。
rcihp145:qa1wrk13:/qa1users1/rgs/test/qa1wrk13/scripts>scp -p msingh2@rcihp145:/home/msingh2/set_run_jobs .
The authenticity of host 'rcihp145 (10.3.37.48)' can't be established.
RSA key fingerprint is 62:f9:d2:7e:d5:ac:bc:9d:0f:8f:82:d3:d4:a9:dc:f5.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/qa1users1/rgs/test/qa1wrk13/.ssh/known_hosts).
Enter passphrase for key '/qa1users1/rgs/test/qa1wrk13/.ssh/id_dsa':
我可以得到这个键映射的解释或一些解决方案吗?
答案1
scp 使用 ssh 协议传输文件。由于您的~/.ssh/
目录中有一个密钥文件,因此 scp 假定您想要使用“无密码登录”(请参阅如何在 Linux 上设置 SSH 免密码登录?)使用该键。但是,此密钥文件受其自己的密码保护,您必须先输入该密码,然后才能使用该密钥来加密与目标计算机的通信。
在这样的设置中,您应该ssh-agent
运行。该程序将跟踪您正在使用的 ssh 密钥,并在每次会话时询问您一次密钥文件的密码。在大多数桌面发行版中,ssh-agent 会在登录时自动启动,因此您不必担心。
答案2
这份文字记录有两个部分。首先,客户端不知道服务器是谁,因此它会提示您验证服务器的身份(直到“您确定要继续连接吗?”)。然后客户端尝试写入您已确认此身份,但失败了(可能是因为它没有写入 的权限/qa1users1/rgs/test/qa1wrk13/.ssh/known_hosts
。您应该让客户端存储服务器的身份,或者手动将其添加到文件中。
第二部分,最后一行,是关于在服务器上验证用户身份的。有几种方法可以实现这一点;最流行的是密码(每次使用时都要输入ssh
)或密钥文件(可以通过密码保护,如果是的话,您可以在每个会话中输入该密码一次。
欲了解更多详细信息,请阅读基于 SSH 密钥的身份验证:known_hosts 与authorized_keys
如果您想要密码提示而不是提示输入密钥文件的密码短语,请告诉 ssh 客户端不要使用密钥文件。
scp -o PubkeyAuthentication=no -p msingh2@rcihp145:/home/msingh2/set_run_jobs .