我可以使用 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
切换。