Linux SSH 免密码 Key 登录时提示“所选的用户密钥未在远程主机上注册”问题

小助手读文章 00:00 / 00:00

服务器已经配置了密钥(Key)登录,但是客户端(Xshell 等)登录总是提示 “所选的用户密钥未在远程主机上注册”,排查发现 Azure CentOS7 模板的 SSH 配置居然跟其他系统不一样,怪不得别的没问题,偏偏 Azure 服务器登录不了!

SSH 配置文件 /etc/ssh/sshd_config 中有这么一行

# AuthorizedKeysFile      .ssh/authorized_key

如果启用 Key 登录,我们一般都是直接删除这一行前面的 #,然而非常容易忽视的是,其他系统的文件一般都是 .ssh/authorized_keys 而这里却是 .ssh/authorized_key!!如果直接从其他系统把文件拷过来,客户端是肯定无法 Key 登录的。

其他会引起 “所选的用户密钥未在远程主机上注册” 或 “服务器拒绝了用户密钥” 问题的原因还有:

  • 文件权限:chmod 700 .sshchmod 00 .ssh/authorized_keys,以及 authorized_keys 归属用户组(如 chown ubuntu:ubuntu .ssh/uthorized_keys
  • 密钥错误:服务器上的 authorized_keys 保存的应是公钥(rsa_id.pub),而不是私钥(rsa_id);
  • 未开启密钥验证:/etc/ssh/sshd_config 文件中应有 PubkeyAuthentication yes 这一行,且没有被注释;
  • 用户名密钥不匹配:如密钥是放在 /home/debian/.ssh/ 下(即用户是 debian),登录的用户名却是 ubuntu
  • 用户名被禁用:如 /etc/ssh/sshd_config 配置了 PermitRootLogin no,却用 root 账户登录;

确认这几个问题后基本上都可以解决 “所选的用户密钥未在远程主机上注册” 问题了(也有说启用 SELinux 也会影响,但实际上未发现,可自测)。


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 linuxsshxshellkey 的文章

 本文最后更新于 2019/10/25 13:19:05,可能因经年累月而与现状有所差异

 引用转载请注明:VirCloud's Blog > 经验 > Linux SSH 免密码 Key 登录时提示“所选的用户密钥未在远程主机上注册”问题

精选评论

  1. 上清

    牛逼,这也行 icon_razz.gif

    1. 欧文斯

      其实很多都是细心的问题