我正在尝试为朋友设置第二个访问 ssh 密钥。他向我发送了他的 id_rsa.pub。
ssh-copy-id -i id_rsa.pub [email protected]
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file './id_rsa': No such file or directory
我需要他将两个文件都发给我吗?
答案1
无需拥有私钥文件即可在服务器上授权密钥。事实上,你永远不应该向朋友索要他们的私钥,它之所以被称为私人的,是因为它应该只为你保留。
但是,ssh-copy-id
如果没有可用的同名私钥文件,OpenSSH 的命令可能会失败,因为它会尝试使用指定的密钥登录以检查它是否已经存在于远程服务器上。
-f
在最近的版本中,您可以使用开关(“强制模式”)覆盖此行为。
从手册页:
-f
强制模式:不检查密钥是否存在于远程服务器上。这意味着它不需要私钥。当然,这可能导致在远程系统上安装多个密钥副本。
答案2
就.pub
足够了。您不在正确的文件夹中。
您可以尝试这个:
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
(对于 root 用户:不推荐,这只是一个示例)。
该文件位于.ssh
用户文件夹的文件夹下。
答案3
据报道OpenSSH 错误 #2110。
答案4
不,你只需要将他的公钥存储在~/.ssh/id_rsa.pub
请注意,该ssh-copy-id
命令使用运行该命令的当前用户的公钥,该公钥旁边有私钥。
您可以通过运行创建一个新密钥ssh-keygen
并将密钥对提供给您的朋友并从您的机器中删除私钥,或者将您的朋友的私钥手动添加到远程服务器,方法是将其附加在~/.ssh/authorized_keys
您的朋友将来将连接的用户的末尾。