这几天看 v2 论坛一个讨论 xshell 的帖子,心血来潮,把收藏的 xshell 5 和 xftp 5 翻出来安装试用,按照网上教程很容易就去掉了强制更新和标签限制,不过尝试连接几个 vps 都提示「所选的用户密钥未在远程主机上注册。请再试一次。」……
「Xshell 5提示”所选的用户密钥未在远程主机上注册”:https://uxtt.com/xshell-5-selected-user-key-is-not-registered-in-the-remote-host」反复检查,这些 vps 用户密钥没有问题,权限也没有问题,并且 Xshell 7 和 Xshell 8 使用同样的密钥均能正常连接。
英文关键词:The selected user key is not registered in the remote host. Try again.
「Xshell 5提示”所选的用户密钥未在远程主机上注册”:https://uxtt.com/xshell-5-selected-user-key-is-not-registered-in-the-remote-host」
网上找到类似案例:Xshell5“所选的用户密钥未在远程主机上注册” 解决办法
系统是 Rocky Linux 9.4,使用 ssh-keygen 创建 RSA 密钥,不管是 mv 公钥还是 cat 公钥甚至是使用 ssh-copy-id 把公钥放进去,使用 xshell 5 登录都是提示所选的用户密钥未在远程主机注册,检查过密钥的权限和.ssh 的权限都没问题,sshd_config 配置文件也都是正确,最后尝试使用 WSL 中的 Ubuntu 22.04.3 中的 ssh 发现是没问题,可以正常连接的,然后继续使用了 MobaXterm 22 登录也没问题,最终确认为 xshell 5 版本太老了导致无法使用私钥登录较新的 Linux 系统,密码验证登录是没有问题的。
看来无解?准备放弃折腾,烧饼大佬的「Debian / Ubuntu 开启 SSH 的 RSA Key 登录」映入眼帘:
「Xshell 5提示”所选的用户密钥未在远程主机上注册”:https://uxtt.com/xshell-5-selected-user-key-is-not-registered-in-the-remote-host」自 OpenSSH 8.3 开始,RSA Key 登录默认被禁用,并被认为不安全。
所以自 Ubuntu 22.04 和 Debian 12 开始,如果某些古老业务需要使用 RSA Key 登录,需手动开启 RSA Key 登录。
方法:不需要修改 /etc/ssh/sshd_config 这个系统默认 SSH 配置文件,只需要添加一个 /etc/ssh/sshd_config.d/enable_rsa_keys.conf 配置文件即可:
「Xshell 5提示”所选的用户密钥未在远程主机上注册”:https://uxtt.com/xshell-5-selected-user-key-is-not-registered-in-the-remote-host」cat > /etc/ssh/sshd_config.d/enable_rsa_keys.conf << EOF
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
EOF然后重启 SSH 服务即可:
systemctl restart sshd
刚好 vps 使用的就是 RSA 密钥,会不会跟这个有关系呢?
于是尝试使用 Xshell 生成了一个 ed25519 类型密钥,注册到 vps 中,systemctl restart sshd 重启了一下服务……
Xshell 5 使用新添加的 ed25519 类型密钥登陆 vps,还真连接上了……
相关内容:
使用 HxD 或者类似工具修改 Xshell 和 xftp 安装目录下的 nslicense.dll 文件,将 7F 0C 81 F9 80 33 E1 01 0F 86 80 修改为 7F 0C 81 F9 80 33 E1 01 0F 83 80,也就是将其中的 86 改成 83
然后到 xshell 工具 -> 选项 -> 更新,将「实时更新」选项取消选中即可。
试用了一下,还是继续用 Xshell 8 + xftp 8,旧版本更轻量,但是功能也更少,一些常用功能没有新版本方便(比如 xftp 5 没有常用路径书签功能)。
任何服务均有跑路风险,请注意防范!没有啥绝对好坏! 备用节点参考:大哥云、万城v-city、飞机云、搬瓦工JMS、极客云……