无法通过 ssh 进入 ec2 框(权限被拒绝)- ECDSA 问题

无法通过 ssh 进入 ec2 框(权限被拒绝)- ECDSA 问题

我启动了 AWS 社区 Ubuntu 12.04 桌面 ec2。我将主机添加到我的 ssh 配置中,并使用身份 pem 密钥文件通过 ssh 进入我的 ec2。

我从我的 ec2 中获取了授权密钥公钥文件,并使用公钥创建了本地 ~/.ssh/myserver.pub。我能够通过 ssh 连接到该框并将其 ssh 端口更改为新号码。我重新启动了 ssh 服务,并且能够再次通过 ssh 连接,没有任何问题。

执行 apt-get 更新并安装一些软件后,我需要将文件 scp 到 ec2。SCP 一直失败,并显示“权限被拒绝(公钥)”。我尝试多次复制到远程主机 ubuntu 主目录,但没有任何效果。

我退出了 ssh 会话。我再次尝试 ssh,但收到“权限被拒绝(公钥)”提示。我从 known_hosts 文件中删除了我的 ec2 的主机条目。

我现在不知怎么地被提示使用 ECDSA 主机密钥进行身份验证,而不是使用 RSA 身份验证。

ECDSA key fingerprint is SHA256 xxxxxx

Are you sure you want to continue connecting (yes/no)?

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: x.pem

debug1: Authentications that can continue: publickey

debug1: No more authentication methods to try.

Permission denied (publickey).

我试过#ssh-keygen -R <my ec2's ip>

Host x.x.x.x not found in /Users/username/.ssh/known_hosts

我尝试删除我的 ec2 的 ECDSA 主机条目并手动添加 RSA 主机公钥,然后再次 ssh 登录。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the RSA key sent by the remote host is
SHA256:xxxxx

Add correct host key in /Users/user/.ssh/known_hosts to get rid of this message.

RSA host key for [myserver.mydomain.com]:xxxx has changed and you have requested strict checking.

此 ec2 的安全组未更改,因此这应该不是问题。

我如何摆脱 ECDSA 身份验证,并返回到我开始使用的 SSH 的原始 RSA 身份验证?

答案1

我会对此更加小心。

SSH 服务器不仅会为安全部分生成密钥,还会让您知道连接是否不是到已知服务器。

据我所知,您的服务器之前有一个 RSA 指纹。这是由 OpenSSH 服务器在安装/生成时创建的。现在您说警告指示同一台机器的 ECDSA 密钥指纹。

要特别小心. Amazon EC2 盒子,除非你给它分配一个静态弹性 IP,更改 IP 地址。从 EC2 面板验证您连接的 IP/地址是否是您认为要访问的框。如果不是,则警告已完成其工作。如果是,请查看框上的更新历史记录和 ID 是否openssh-server最近更新过。如果是,那么很可能它使用 ECDSA 而不是 RSA,因此恢复不太重要(只需从您自己的机器中删除已知指纹~/.ssh/known_servers(路径即将验证),然后重新连接到服务器。)

相关内容