复制文件时所需的密钥密码

复制文件时所需的密钥密码

我通常会收到输入密码的提示,但这次我的终端要求输入密钥的密码。

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 .

相关内容