抱歉再次问这个问题,因为我知道这个问题已经被问过很多次了……我之前已经看过很多帖子,但都没有成功。什么方法都试过了……
脚步:
- 启动实例
- 更新安全组以允许从我的 IP 地址在端口 22 上进行 ssh 连接
- 创建新的密钥对 - 保存 .pem 文件
- 使用puttygen将其转换为PPK:加载->保存私钥
- 尝试
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:身份文件.ssh/test.pem类型-1 debug1:key_load_public:没有此文件或目录 debug1:身份文件.ssh/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 实例启动向导中指定该密钥对,然后就可以连接。