Ubuntu 无法ssh到Amazon EC2帐户。(公钥错误)

Ubuntu 无法ssh到Amazon EC2帐户。(公钥错误),ubuntu,amazon-ec2,amazon-web-services,Ubuntu,Amazon Ec2,Amazon Web Services,我刚刚启动了一个EC2实例,启动ssh连接时遇到困难。请注意,我有一个以前的EC2实例,它使用相同的密钥对ssh运行良好。我很困惑,因为我使用相同的密钥对启动了这个新的EC2实例 下面是我试过的。关于这里可能发生的事情有什么专家建议吗?如何修复它 me@ubuntu:~/keys$ ssh -i mykey.pem ubuntu@1.2.3.4 The authenticity of host '1.2.3.4 (1.2.3.4)' can't be established. RSA key f

我刚刚启动了一个EC2实例,启动ssh连接时遇到困难。请注意,我有一个以前的EC2实例,它使用相同的密钥对ssh运行良好。我很困惑,因为我使用相同的密钥对启动了这个新的EC2实例

下面是我试过的。关于这里可能发生的事情有什么专家建议吗?如何修复它

me@ubuntu:~/keys$ ssh -i mykey.pem ubuntu@1.2.3.4
The authenticity of host '1.2.3.4 (1.2.3.4)' can't be established.
RSA key fingerprint is aa:bb:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '1.2.3.4' (RSA) to the list of known hosts.
Permission denied (publickey).

me@ubuntu:~/keys$ chmod 400 mykey.pem
me@ubuntu:~/keys$ ssh -i mykey.pem ubuntu@1.2.3.4
Permission denied (publickey).

me@ubuntu:~/keys$ ssh -v -i mykey.pem ubuntu@1.2.3.4
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 1.2.3.4 [1.2.3.4] port 22.
debug1: Connection established.
debug1: identity file mykey.pem type -1
debug1: identity file mykey.pem-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA aa:bb:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc
debug1: Host '1.2.3.4' is known and matches the RSA host key.
debug1: Found key in /home/me/.ssh/known_hosts:10
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
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: mykey.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
me@ubuntu:~/keys$ssh-i mykey.pemubuntu@1.2.3.4
无法确定主机“1.2.3.4(1.2.3.4)”的真实性。
RSA密钥指纹是aa:bb:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc。
是否确实要继续连接(是/否)?对
警告:已将“1.2.3.4”(RSA)永久添加到已知主机列表中。
权限被拒绝(公钥)。
me@ubuntu:~/keys$chmod 400 mykey.pem
me@ubuntu:~/keys$ssh-i mykey.pemubuntu@1.2.3.4
权限被拒绝(公钥)。
me@ubuntu:~/keys$ssh-v-i mykey.pemubuntu@1.2.3.4
OpenSSH_5.8p1 Debian-1ubuntu3,OpenSSL 0.9.8o 2010年6月1日
debug1:读取配置数据/etc/ssh/ssh\u config
debug1:将选项应用于*
debug1:连接到1.2.3.4[1.2.3.4]端口22。
debug1:已建立连接。
debug1:标识文件mykey.pem类型-1
debug1:标识文件mykey.pem-cert类型-1
debug1:远程协议版本2.0,远程软件版本OpenSSH_5.3
debug1:match:OpenSSH_5.3 pat OpenSSH*
debug1:启用协议2.0的兼容模式
debug1:本地版本字符串SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
debug1:SSH2\u MSG\u KEXINIT已发送
debug1:SSH2\u MSG\u KEXINIT已收到
debug1:kex:server->client aes128 ctr hmac-md5无
debug1:kex:客户端->服务器aes128 ctr hmac-md5无
debug1:SSH2\u MSG\u KEX\u DH\u GEX\u请求(1024Try:

相反

如果您的AMI是
AmazonAMI
,请使用
EC2user
作为您的用户名

如果仍然无法工作,请尝试将以下内容放入
~/.ssh/config

IdentitiesOnly yes
KeepAlive yes
ServerAliveInterval 60
Host ALAIS_FOR_YOUR_HOST
    User ubuntu
    HostName HOST_IP
    IdentityFile FULL_PATH_TO_KEY_FILE

您正在使用的密钥对一定是错误的/丢失的,并且您无法恢复私钥对,因为我曾经丢失了.pem文件,必须重新创建并实例化。 它就像一个密码,亚马逊出于安全原因不保存私钥

去修理它

转到aws管理控制台 1.停止实例,并创建相同的AMI映像。 2.使用创建的AMI映像和附加的新密钥对启动一个新实例。 3.然后分配以前分配给旧实例的弹性IP。 4.如果一切正常,请删除旧实例


因此,请将XXXX.pem文件保存在联机的某个位置。

关键调试日志如下:

debug1: Roaming not allowed by server

您是从3g/4g热点连接的吗?Amazon EC2公然忽略了您的pem文件。

您的ssh目录中是否有“公钥”文件?这可能就是错误的原因-ssh无法将公钥写入密钥链。@codingjoe您找到解决方案了吗?我也遇到了这个问题。谢谢,但这仍然不起作用。我将上述内容添加到我的~/.ssh/config文件中,但仍然有相同的错误消息。还有其他建议吗?@codingJoe您是否尝试先使用
chmod 600您的\u PEM\u密钥文件
?如果它和您的AMI不是Amazon AMI,那么在将上述内容添加到您的
~/.ssh.config
文件后,使用
ssh ALAIS\u您的主机
进行连接。我无法连接SSH到热点上的ec2-有没有一个简单的解释来解释为什么?感谢Mikhail,这是一个IP问题-谷歌告诉我我的外部IP地址与我获得SSH访问所需的不同。亚马逊也认为这是一个不同的地址-非常奇怪…一旦我找到了正确的IP,它就工作了!你是如何找到正确的IP的地址?我想我也有同样的问题。
debug1: Roaming not allowed by server