Xshell 登录 AWS EC2 “所选择的用户秘钥未在远程主机上注册” 错误解决方法

如何解决“所选择的用户秘钥未在远程主机上注册”

在使用进行远程登录的服务器时,会遇到“” 的错误,基本上每个新手都会遇到相同的错误,那么到底是什么造成SSH连接时的“所选择的用户秘钥未在远程主机上注册” 错误呢?下面具体分析一下造成错误的原因。

Xshell 登录 AWS “所选择的用户秘钥未在远程主机上注册” 错误解决方法-1

Xshell工具是比较流行的SSH远程工具之一,和putty相比,功能强大且支持openssh。

在创建好服务器后,使用SSH进行连接,连接时会遇到SSH安全警告。

请验证主机密钥。

xxx的主机密钥与本地主机密钥数据库中保存的不一致。主机密钥已更改或有人试图监听此连接。若无法确定建议取消此连接。

Xshell 登录 AWS “所选择的用户秘钥未在远程主机上注册” 错误解决方法-1

到这一步有点懵,是AWS给生成的密钥问题,还是使用Xshell进行SSH连接造成的问题?下一面一步一步排查错误出在哪里。

第一步:首先看一下,是否是用户名错误,AWS有一个小坑,就是每个类型的服务器,默认的用户名居然不同,不像 那样都是默认的root,下面看一下AWS各种实例的用户名。

亚马逊EC2 Linux实例的默认用户名是什么(用于SSH、PuTTY等)

EC2/AWS服务器上Linux实例(Ubuntu, , Fedora, Linux等)的默认用户名

  • Amazon Linux 2023/Amazon Linux 2/Amazon Linux  ec2-user
  • centos or ec2-user
  • Debian admin
  • Fedora fedora or ec2-user
  • RHEL ec2-user or root
  • SUSE ec2-user or root
  • Ubuntu ubuntu
  • ec2-user
  • Bitnami bitnami

测试机安装的RHEL系统,默认的用户名是ec2-user或者是root,在远程连接时,将两个用户名都尝试了一下,依旧无法连接。

AWS官方的帮助页面:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html

第二步:确认了不是用户名的问题,那么接下来查看一下是否是密钥上出了问题。

官方文档中给出了使用密钥进行远程连接的说明。

您必须知道私钥文件的位置才能连接到您的实例。对于 SSH 连接,您必须设置权限,以便只有您可以读取该文件。

有关使用 Amazon EC2 时密钥对如何工作的信息,请参阅Amazon EC2 密钥对和 Linux 实例。

找到私钥

.pem获取您在启动实例时指定的密钥对的文件在计算机上位置的完全限定路径 。有关更多信息,请参阅识别启动时指定的公钥。如果您找不到私钥文件,请参阅我丢失了私钥。如何连接到我的 Linux 实例?

如果您使用 Putty 连接到实例并需要将文件转换 .pem为.ppk,请参阅本节的使用PuTTY 从 Windows 连接到 Linux 实例主题中 的使用 PuTTYgen 转换私钥

设置您的私钥的权限,以便只有您可以读取它

或 Linux 连接

如果您打算在 macOS 或 Linux 计算机上使用 SSH 客户端连接 Linux 实例,请使用以下命令设置私钥文件的权限,以便只有您可以读取它。

chmod 400 key-pair-name.pem
如果您不设置这些权限,则无法使用此密钥对连接到您的实例。有关详细信息,请参阅错误:私钥文件不受保护。

从 Windows 连接

打开文件资源管理器并右键单击该.pem文件。选择 “属性” > “安全”选项卡,然后选择“高级”。选择 禁用继承。删除除当前用户之外的所有用户的访问权限。

尝试一下在Windows进行远程连接时候,修改私钥的属性。

Xshell 登录 AWS “所选择的用户秘钥未在远程主机上注册” 错误解决方法-1

修改完属性后,使用密钥依旧无法连接。

第三步:SSH远程连接工具Xshell 6是否版本过低,导致无法进行SSH连接。

因为之前电脑里一直都是使用Xshell 6来管理服务器,导致很长一段时间没有进行Xshell 更新,接下来将Xshell 6更新到Xshell 7后,再次尝试连接。

Xshell 登录 AWS EC2 “所选择的用户秘钥未在远程主机上注册” 错误解决方法-1

连接成功!

Xshell 登录 AWS EC2 “所选择的用户秘钥未在远程主机上注册” 错误解决方法-1

折腾一大圈,原来是Xshell版本过低的问题。

最后总结一下,远程连接时,如果无法连接服务器,大概率的原因是你没有正确输入用户名,例如默认输入root

另外一个原因就是SSH的软件版本过低。升级Xshell!

如果你还没有免费的服务器 AWS EC2的话,可以免费注册。

免费申请12个月 AWS 亚马逊云服务器 amazon cloud 亚马逊云 最新教程

AWS中国官网: https://aws.amazon.com/cn/
亚马逊云科技官网: https://www.amazonaws.cn/

5/5 - (1 vote)

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注