服务器已经配置了密钥(Key)登录,但是客户端(Xshell 等)登录总是提示 “所选的用户密钥未在远程主机上注册”,排查发现 Azure CentOS7 模板的 SSH 配置居然跟其他系统不一样,怪不得别的没问题,偏偏 Azure 服务器登录不了!
SSH 配置文件 /etc/ssh/sshd_config
中有这么一行
如果启用 Key 登录,我们一般都是直接删除这一行前面的 #
,然而非常容易忽视的是,其他系统的文件一般都是 .ssh/authorized_keys
而这里却是 .ssh/authorized_key
!!如果直接从其他系统把文件拷过来,客户端是肯定无法 Key 登录的。
其他会引起 “所选的用户密钥未在远程主机上注册” 或 “服务器拒绝了用户密钥” 问题的原因还有:
文件权限:
chmod 700 .ssh
,chmod 600 .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:使用
getenforce
查看,显示的至少要是Permissive
,如果是Enforcing
也是不行的。临时关闭:setenforce 0
;永久关闭:编辑/etc/sysconfig/selinux
,其中的SELINUX=enforcing
替换为SELINUX=disabled
。
确认这几个问题后基本上都可以解决 “所选的用户密钥未在远程主机上注册” 问题了。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/7755.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~