所选的用户秘钥未在远程主机注册

首先网上大部分抄的内容都是围绕pubkey配置不对的内容,参考价值不大。

已经排查:

  1. authorized_keys 内容 --- ok
  2. authorized_keys 权限 600 or 644 --- ok

还是失败,对等其他主机配置的,都是可以的,同样的客户端配置操作。

解决思路:

  1. 查看sshd日志:cat /var/log/secure,发现有用信息:
    userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
  2. 根据上面的提示
    sshd -T | grep pubkeyacceptedalgorithms
    pubkeyacceptedalgorithms ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256

    可以看到没有 ssh-rsa

  3. 配置 vi /etc/ssh/sshd_config 添加:
    PubkeyAuthentication yes
    PubkeyAcceptedKeyTypes +ssh-rsa

    然后重启:systemctl restart ssh

  4. 重启后再次查询:
    sshd -T | grep pubkeyacceptedalgorithms
    pubkeyacceptedalgorithms ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com,rsa-sha2-256-cert-v01@openssh.com,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ssh-ed25519@openssh.com,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa

    在尾部已经发现ssh-rsa了

  5. 在客户端重新尝试,可以正常登陆了

总结:因为ubuntu是最新的版本,因为安全原因,默认把 ssh-rsa禁用了。所以根据此思路,如果我们有时间,我们还可以从升级客户端的配置来场景解决

参考感谢:https://www.ezeelogin.com/kb/article/userauth_pubkey-signature-algorithm-ssh-rsa-not-in-pubkeyacceptedalgorithms-518.html

发表回复

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