早上研究了如何才能免密码通过 ssh 远程登录Linux,如果用户的家目录是在 /home
目录下的话是可以的,但是如果是在别的地方则无法实现免密码登录;找了一圈,最后发现是 SeLinux
的锅
环境参数
- centOS7
出错排查
修改了文件权限,配置了sshd都没有用,最后受这篇文章:一次由SELinux引起的SSH公钥认证失败问题的启发,进行了如下排错
在root模式下输入命令
1 | less /var/log/messages |
会发现有如下报错
没错,这个锅 SeLinux
背定了
进行纠错
方案一:关闭SeLinux
简答粗暴一条指令
1 | setenforce 0 |
或者修改其配置文件 /etc/sysconfig/selinux
或 /etc/selinux/config
,但是这个配置文件生效要重启才行
输入 getenforce
或 sestatus
查看其状态
方案二:修改相关文件参数
输入
1 | ls -Z |
红圈中为 SeLinux 为那些文件所打上的tag
比对着一点点用 chcon
修改即可,如果修改的参数后缀为 _t
则为 chcon -t ...
,别的同理