无法从一个 AMI ec2 实例连接到另一个实例



我可以使用 putty 从我的 Windows PC 连接到我的 AMI E2C Linux 实例,但我不能从一个实例 ssh 到另一个实例。我收到以下错误消息,我刚刚复制了错误消息的最后一部分:

debug1: Found key in /home/ec2-user/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/.ssh/id_rsa
debug1: Trying private key: /home/ec2-user/.ssh/id_dsa
debug1: Trying private key: /home/ec2-user/.ssh/id_ecdsa
debug1: Trying private key: /home/ec2-user/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

所有服务器的安全组都已向源0.0.0.0开放 SSH

我尝试创建新的 ssh 密钥,ssh-keygen -t -rsa,并将 .pub 文件的内容复制并粘贴到另一台服务器上的/.ssh/authorized_keys 文件中。但它仍然不起作用。

我尝试将两个文件的内容复制到另一个服务器到/.ssh 保持相同的文件名并再次运行 chmod 600 两个文件。但它仍然不起作用。

我不敢相信,我已经在这个问题上停留了 2 天。

在仔细检查我在要连接的服务器上创建的ID_RSA文件时,我有一个副本并粘贴了另一台服务器的公钥,但没有粘贴所有密钥。 复制和粘贴功能漏掉了密钥的前几个字符。

一旦我把它们放在 ssh 连接中就可以工作了!

可能是您正在使用非标准名称创建密钥。

在这种情况下,我就是这样做的:

服务器 #1:

$ ls -la ~/
...
drwx------ 2 ec2-user ec2-user 4096 Mar 16 00:27 .ssh
...
$ ls -l ~/.ssh
total 12
-rw------- 1 ec2-user ec2-user  731 Mar  3 16:05 authorized_keys
-rw-r--r-- 1 ec2-user ec2-user 2220 Mar 17 11:39 known_hosts
-rw------- 1 ec2-user ec2-user 3326 Mar  4 00:48 roman.pem

服务器 #2:

$ ls -la ~/
...
drwx------ 2 ec2-user ec2-user 4096 Mar 17 12:10 .ssh
...
$ ls -l ~/.ssh
total 4
-rw------- 1 ec2-user ec2-user 731 Mar 17 12:10 authorized_keys

authorized_keys只有一条记录,并且与服务器 #1 中的记录相同

这是我用于从服务器 #1 连接到服务器 #2 的命令:

$ ssh -v <server#2-ip> -i ~/.ssh/roman.pem

如您所见,我使用 -i 来指定键名的完整路径。


更新:

此外,可以将自定义密钥添加到服务器 #1:ssh-add ~/.ssh/roman.pem 上的 ssh-agent 中,以便跳过-i切换。

最新更新