我正在遵循数字海洋指南使用 Ansible,其中涉及在我将使用的主机上设置我的 ssh 密钥:https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04
我的 Ansible 主机是我的本地 WSL Ubuntu 设置,我的客户端是 AWS 服务器。
我开始执行第 1 步并创建了一个 rsa 密钥 myfirstkey.pub。然后我运行:sudo ssh-copy-id -i ~/.ssh/myfirstkey.pub ~/.ssh/myhostkeyforaws.pub ec2-user@myfirsthost
但我一直看到这个错误:
my_user@DESKTOP:~/.ssh$ sudo ssh-copy-id -i ~/.ssh/myhostkeyforaws ec2-user@myfirsthost
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/my_user/.ssh/myhostkeyforaws.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ec2-user@myfirsthost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
我看了很多帮助指南,但还是搞不清楚我做错了什么。如何将 ssh 密钥添加到 amazon ec2 实例?
答案1
读AWS 有关如何添加密钥的文档。AWS 不允许密码验证,因此您必须按照 AWS 的文档添加密钥。
如果您在虚拟机中没有设置,最简单的方法可能是删除它并重新开始 - 并注意在创建虚拟机时所做的选择。如果您在其中有配置,AWS 提供了有关如何访问它的文档,通过将存储附加到不同的虚拟机并手动编辑它。
其次,不要在命令前面加上sudo
默认。在您的场景中,没有理由ssh-copy-id
以 root 身份运行。
第三,你为什么要在计算机上为密钥设置自定义文件名?在某些情况下,这可能有意义,但总的来说,这只会使使用更加复杂。