AWS:Ubuntu 实例始终拒绝我的私钥

AWS:Ubuntu 实例始终拒绝我的私钥

抱歉再次问这个问题,因为我知道这个问题已经被问过很多次了……我之前已经看过很多帖子,但都没有成功。什么方法都试过了……

脚步:

  1. 启动实例
  2. 更新安全组以允许从我的 IP 地址在端口 22 上进行 ssh 连接
  3. 创建新的密钥对 - 保存 .pem 文件
  4. 使用puttygen将其转换为PPK:加载->保存私钥
  5. 尝试ubuntu@myInstancePublicDNS使用我保存的 .ppk 作为身份验证密钥(加载在SSH->授权

我之前在朋友家重复了同样的步骤,而且成功了。我没有做任何不同的事情。我无法想象这与位置有什么关系,因为我还将我的 IP 添加到了安全组中,而我收到的消息是拒绝密钥。

  • 我尝试使用 cygwin 和 open-ssh 连接下载的 .pem 私钥。
  • 我已尝试在我的 pk 上设置 chmod 600。
  • 我尝试从 known_hosts 文件中删除 ec2 实例,然后重试
  • 我曾尝试使用ssh -i <keyDir> -v ubuntu@myInstancePublicDNS来获取一些额外的输出进行调试
  • 我曾尝试使用用户 = ec2-用户或 root
  • 我曾尝试上传使用 puttygen 生成的密钥/密钥对的公钥
  • 我已尝试终止该实例并启动一个新实例......

但每次,我都会得到以下信息:

OpenSSH_6.8p1,OpenSSL 1.0.2d 2015 年 7 月 9 日
debug1:连接到 XX.XX.XXX.XX [XX.XX.XXX.XX] 端口 22。
debug1:连接已建立。
debug1:key_load_public:没有此文件或目录
debug1:身份文件.ss​​h/test.pem类型-1
debug1:key_load_public:没有此文件或目录
debug1:身份文件.ss​​h/test.pem-cert类型-1
debug1:启用协议 2.0 的兼容模式
debug1:本地版本字符串 SSH-2.0-OpenSSH_6.8
debug1:远程协议版本2.0,远程软件版本OpenSSH_6.2
调试1:匹配:OpenSSH_6.2 pat OpenSSH* 兼容 0x04000000
debug1:SSH2_MSG_KEXINIT 已发送
debug1: 收到 SSH2_MSG_KEXINIT
debug1:kex:服务器->客户端aes128-ctr[电子邮件保护]没有任何
debug1:kex:客户端->服务器aes128-ctr[电子邮件保护]没有任何
debug1:发送 SSH2_MSG_KEX_ECDH_INIT
debug1:期待 SSH2_MSG_KEX_ECDH_REPLY
debug1:服务器主机密钥:ecdsa-sha2-nistp256 SHA256:SUYkrQtUYkQ4Fl2Dh5K/4kc/b0kYliZGrdFdXeHxLtk
debug1:主机“XX.XX.XXX.XX”已知并且与 ECDSA 主机密钥匹配。
debug1:在 /home/MY_USERNAME/.ssh/known_hosts:2 中找到密钥
debug1: SSH2_MSG_NEWKEYS 已发送
debug1:期望 SSH2_MSG_NEWKEYS
debug1: 已收到 SSH2_MSG_NEWKEYS
debug1:服务器不允许漫游
debug1: SSH2_MSG_SERVICE_REQUEST 已发送
debug1: 已收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的认证:publickey
debug1:下一个认证方法:publickey
debug1:尝试私钥:.ssh/test.pem
debug1:可以继续的认证:publickey
debug1:没有更多可尝试的身份验证方法。
权限被拒绝(公钥)。

我已经束手无策了,希望其他人也经历过类似的事情!!

答案1

1.) 启动实例 2.) 更新安全组以允许从我的 IP 地址在端口 22 上进行 ssh 连接 3.) 创建新的密钥对 - 保存 .pem 文件

您的这些步骤顺序错误。需要指定密钥对创建实例时以便正确部署公钥。

您大概已经在 AWS 中创建了一个密钥对(并且已经下载了私钥),因此您需要做的就是在 EC2 实例启动向导中指定该密钥对,然后就可以连接。

相关内容