亚马逊实例不再允许使用私钥登录

Posted

技术标签:

【中文标题】亚马逊实例不再允许使用私钥登录【英文标题】:Amazon instance no longer allowing login with private key 【发布时间】:2014-09-16 11:22:07 【问题描述】:

我已经解决了很多关于 SO 的问题,但没有一个有效,但我也可以确定发生这种情况的时间,以便我可以添加另一层细节。

大多数解决方案表明提问者是:

    使用了不正确的密钥 用户名不正确。这是一个 Ubuntu 映像,我尝试了“ubuntu”、“ec2-user”以及我在机器上为自己创建的新用户名。没有工作;所有相同的错误消息。

任何一个实例都建议尝试:ssh -i kename.pem username@host -vvv,这是过去一直为我工作的方式....直到我重新映像我的客户端计算机。从那时起,我就得到了附加的 ssh 跟踪。

我已尝试从我被锁定的服务器创建 AMI、启动新实例、创建新密钥并尝试登录新实例的第二级尝试。运气不好。

所以,我的问题是:旧机器上是否有一些东西,可能是我的公钥或其他东西,我不再拥有,因此无法连接到任何实例?我的印象是您只需要私钥来进行身份验证。除了使用它登录机器之外,我对 SSH 协议的了解很薄,下面的跟踪似乎没有给我任何提示,除了“debug1:服务器不允许漫游”之外,它在哪里发生故障,但也许这不相关,我正在做更多的事情。

我希望这个问题的重新成像部分能够对这个主题有所了解。

OpenSSH_5.9p1,OpenSSL 1.0.0e 2011 年 9 月 6 日 调试2:ssh_connect:需要priv 0 debug1:连接到 **hostname** [**hostname**] 端口 22。 debug1:建立连接。 debug1:身份文件 /.ssh/id_rsa 类型 -1 debug1:身份文件/.ssh/id_rsa-cert type -1 debug1:身份文件 /.ssh/id_dsa 类型 -1 debug1:身份文件/.ssh/id_dsa-cert type -1 debug1:身份文件 /.ssh/id_ecdsa 类型 -1 debug1:身份文件/.ssh/id_ecdsa-cert type -1 debug1:远程协议版本2.0,远程软件版本OpenSSH_5.9p1 Debian-5ubuntu1.4 debug1:匹配:OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH* debug1:为协议 2.0 启用兼容模式 debug1:本地版本字符串 SSH-2.0-OpenSSH_5.9 debug2: fd 100 设置 O_NONBLOCK debug1: SSH2_MSG_KEXINIT 已发送 debug1:收到 SSH2_MSG_KEXINIT debug2:kex_parse_kexinit:ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、diffie-hellman-group-exchange-sha256、diffie-hellman-group-exchange-sha1、diffie-hellman-group14-sha1、 diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-rsa- cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256, ecdsa-sha2-nistp384、ecdsa-sha2-nistp521、ssh-rsa、ssh-dss debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@裂解器变种liu.se debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@裂解器变种liu.se debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac- ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac- ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: zlib@openssh.com,zlib,none debug2: kex_parse_kexinit: zlib@openssh.com,zlib,none 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit:first_kex_follows 0 debug2:kex_parse_kexinit:保留 0 debug2:kex_parse_kexinit:ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、diffie-hellman-group-exchange-sha256、diffie-hellman-group-exchange-sha1、diffie-hellman-group14-sha1、 diffie-hellman-group1-sha1 调试2:kex_parse_kexinit:ssh-rsa、ssh-dss、ecdsa-sha2-nistp256 debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@裂解器变种liu.se debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@裂解器变种liu.se debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac- ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac- ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 调试2:kex_parse_kexinit:无,zlib@openssh.com 调试2:kex_parse_kexinit:无,zlib@openssh.com 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit: 调试2:kex_parse_kexinit:first_kex_follows 0 debug2:kex_parse_kexinit:保留 0 debug2: mac_setup: 找到 hmac-md5 debug1: kex: server->client aes128-ctr hmac-md5 zlib@openssh.com debug2: mac_setup: 找到 hmac-md5 调试1:kex:客户端->服务器aes128-ctr hmac-md5 zlib@openssh.com debug1:发送 SSH2_MSG_KEX_ECDH_INIT debug1:期待 SSH2_MSG_KEX_ECDH_REPLY debug1:服务器主机密钥:ECDSA ea:b9:58:59:16:ff:cc:89:72:50:ab:f7:8f:40:ef:3b 无法确定主机'**hostname** (**hostname**)' 的真实性。 ECDSA 密钥指纹为 ea:b9:58:59:16:ff:cc:89:72:50:ab:f7:8f:40:ef:3b。 您确定要继续连接(是/否)?是的 警告:将 '**hostname**' (ECDSA) 永久添加到已知主机列表中。 debug1:ssh_ecdsa_verify:签名正确 调试2:kex_derive_keys debug2:set_newkeys:模式 1 debug1: SSH2_MSG_NEWKEYS 已发送 debug1:期待 SSH2_MSG_NEWKEYS 调试2:set_newkeys:模式0 debug1:收到 SSH2_MSG_NEWKEYS debug1:服务器不允许漫游 debug1:SSH2_MSG_SERVICE_REQUEST 已发送 debug2: service_accept: ssh-userauth debug1:收到 SSH2_MSG_SERVICE_ACCEPT debug2:键:/.ssh/id_rsa (0x0) debug2:键:/.ssh/id_dsa (0x0) debug2:键:/.ssh/id_ecdsa (0x0) debug1:可以继续的身份验证:publickey debug3:重新开始,传递了不同的列表公钥 debug3:首选公钥、键盘交互、密码 debug3: authmethod_lookup 公钥 debug3:剩余首选:键盘交互,密码 debug3:authmethod_is_enabled 公钥 debug1:下一个认证方式:publickey debug1:尝试私钥:/.ssh/id_rsa debug1:无法打开密钥文件“/.ssh/id_rsa”:无效参数 debug1:尝试私钥:/.ssh/id_dsa debug1:无法打开密钥文件“/.ssh/id_dsa”:参数无效 debug1:尝试私钥:/.ssh/id_ecdsa debug1:无法打开密钥文件“/.ssh/id_ecdsa”:参数无效 debug2:我们没有发送数据包,禁用方法 debug1:没有更多的身份验证方法可以尝试。 权限被拒绝(公钥)。

【问题讨论】:

不确定在这种情况下是否会产生任何积极影响,但看起来您正在(Windows?)机器上运行未设置$HOME变量,因为搜索路径中的键/ 似乎有些奇怪。 我现在在 Chromebook 上运行,这可能是为什么跟踪看起来有点滑稽,但有问题的机器是 Mac(接下来的几个我无法访问它)小时)。我将此问题发送给朋友,他说我可能需要提及添加到服务器计算机上的 authorized_hosts 的公钥。我能够找到它,现在我只需要弄清楚如何使用它,或者这是否是一个可能存在的问题...... 创建实例时,系统管理员要求我提供一个公钥,我假设他将其放入了授权密钥。我仍然有那个密钥文件,但不知道如何——或者即使我需要——使用它。私钥绝对正确,我用“-i ”指定以确保。 【参考方案1】:

你会加入你正在尝试的确切命令吗?

还有 ls $HOME/.ssh 的输出?

如果您仔细阅读堆栈跟踪,看起来 SSH 在默认位置找不到任何密钥。服务器回复说您没有提供正确的密钥,调试输出告诉我您没有提供任何密钥。

所以首先找出你的私钥在你的客户端计算机上的位置:)

然后将其移至 .ssh/id_rsa 或按照 cmets 中的建议执行 ssh -i <key_location> ubuntu@myhost

【讨论】:

“我从 .pem 文件所在的位置尝试了 ssh -i .pem user@host”,但没有成功。我担心服务器上的 authroized_keys 文件被修改了,我不再拥有正确的公钥,但我对 SSH 非常不熟悉,所以这甚至不可能。我绝对确定这是正确的 .pem 文件,而且我使用的是我曾经必须使用的唯一用户名。重新映像可能导致此问题的客户端计算机后,是否会出现问题? 尝试ssh-agent bash 然后ssh-add <pem file> 然后登录 是的,但是您发布的输出不是使用 -i 的命令的输出?请使用 -i 选项向我们提供调试输出。

以上是关于亚马逊实例不再允许使用私钥登录的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Amazon EC2 实例设置 SSH 访问?

亚马逊的AWS不能SSH登录了怎么办

使用哪个亚马逊网络服务

mac 登录亚马逊云服务器报错:Permission denied (publickey).

无法在 AWS(亚马逊网络服务)上登录解析仪表板

亚马逊免费服务器搭建Discuz!论坛过程