CentOS下“ssh免密码登录不生效”问题

一般为了方便运维管理都会配置ssh免密登录,ssh免密登录实现也很方便。今天遇到一个完成了配置了却不能生效的问题。

思考

遇到这个问题一般有以下几点:

authorized_keys文件是否启用

.ssh 和 authorized_keys 文件权限问题

排查

检查AuthorizedKeysFile配置是否启用authorized_keys

root@pts/1 $ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile AuthorizedKeysFile .ssh/authorized_keys

没有问题,继续检查.ssh (700) 和 authorized_keys(644) 权限

root@pts/1 $ getfacl /root/.ssh/ getfacl: Removing leading '/' from absolute path names # file: root/.ssh/ # owner: root # group: root user::rwx group::--- other::--- root@pts/1 $ getfacl /root/.ssh/authorized_keys getfacl: Removing leading '/' from absolute path names # file: root/.ssh/authorized_keys # owner: root # group: root user::rw- group::--- other::---

authorized_keys 权限不对,修改一下chmod 644 authorized_keys

再次尝试结果发现还是不行。但是该设置的权限都设置了。既然.ssh目录和其下文件的权限都OK了,那就检查下其父目录的权限,也就是这里的/root的权限

root@pts/1 $ getfacl /root/ getfacl: Removing leading '/' from absolute path names # file: root/ # owner: ftpuser # group: ftpuser user::r-x group::r-x other::---

发现这里/root 的属主都发生了变化。为了不影响别的业务情况,保留这里的ftpuser权限,利用setfacl添加特殊ACL权限

root@pts/1 $ chown -R root:root /root/ root@pts/1 $ setfacl -m u:ftpuser:rwx /root/ root@pts/1 $ getfacl /root/ getfacl: Removing leading '/' from absolute path names # file: root/ # owner: root # group: root user::rwx user:ftpuser:rwx #effective:r-x group::r-x mask::r-x other::r-x 附加

权限问题

/root 775

/root/.ssh 700

/root/.ssh/authorized_keys 644

开启文件AuthorizedKeysFile .ssh/authorized_keys

下面关于SSH相关的文章您也可能喜欢,不妨参考下:

集群环境SSH免密码登录设置 

Linux基础教程:配置SSH免密码登陆

远程SSH连接服务与基本排错 

使用SSH公钥密钥自动登陆Linux服务器

配置SSH免密码登录 

开启SSH服务让Android手机远程访问 Ubuntu 14.04 

SSH非交互式密码授权远程执行脚本 

SSH通过密钥登陆

Ubuntu 安装配置SSH(ssh: connect to host localhost port 22: Connection refused问题的解决) 

CentOS SSH提示:connect to host centos-py port 22: Connection refused 

Linux上实现SSH免密码登陆远程服务器 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13122.html