如何在远程服务器上使用 ssh-copy-id?

如何在远程服务器上使用 ssh-copy-id?

我有一个 ec2 实例,我可以使用此命令和我拥有的 ssh_key.pem 文件连接它。

ssh -i ssh_key.pem [email protected]

我正在尝试使用 ssh-copy-id 将我本地机器上的公钥添加到远程 ec2 实例。

ssh-copy-id -i .ssh/id_ed25519.pub [email protected]

输出:

/usr/bin/ssh-copy-id:INFO:要安装的密钥源:“.ssh/id_ed25519.pub” /usr/bin/ssh-copy-id:INFO:尝试使用新密钥登录,以过滤掉已安装的密钥 /usr/bin/ssh-copy-id:INFO:仍有 1 个密钥需要安装 - 如果现在提示您安装新密钥[电子邮件保护]:权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。

但是,它不起作用,我猜是因为我没有提供任何用于连接的私钥参数。

但是,我在帮助 -h 中也看不到任何此类参数。

请建议如何做。

ssh-copy-id 如上所述不起作用,但我找到了一种替代方法。

我可以使用 pem 文件 3.pem 连接到远程机器

ssh -i 3.pem [email protected]

因此,我尝试了以下 scp 命令。

scp -q -i 3.pem .ssh/id_ed25519.pub [email protected]:~/.ssh/authorized_keys

现在,一切正常,我可以使用生成的密钥登录。

ssh -i .ssh/id_ed25519 [email protected]

但是,它取代了对 3.pem 早期密钥的访问。因为它取代了 authorized_keys 文件中的所有内容,而我只是复制了文件并替换了旧文件。

如何确保仅发生附加。

答案1

假设您已经在使用公钥验证(从我所读的内容来看您确实在使用),我会仔细检查与 ssh 公钥相关的文件夹和文件的权限,即 ~/.ssh 应该是 0700 ~/.ssh/authorized_keys 应该是 0600

答案2

找到解决方案了,请点击此链接:https://superuser.com/questions/1264012/how-to-ssh-copy-id-2nd-key-when-the-server-only-allows-publickey-authentication

ssh-copy-id -f -i ~/.ssh/dev_pub_key.pub -o StrictHostKeyChecking=no -o "IdentityFile ~/ssh_key.pem" $user@$server_name

感谢大家的帮助

相关内容