我有一个 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
感谢大家的帮助