今天发现一台机器上配置了SSH密钥登陆,但就是登陆不上,后发现是由于Selinux开启导致,关闭即正常。
于是检查目录上下文权限:
ls -Z -a dr-xr-x---. root root system_u:object_r:admin_home_t:s0 . dr-xr-xr-x. root root system_u:object_r:root_t:s0 .. -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg -rw-------. root root unconfined_u:object_r:admin_home_t:s0 .bash_history -rw-r--r--. root root system_u:object_r:admin_home_t:s0 .bash_logout -rw-r--r--. root root system_u:object_r:admin_home_t:s0 .bash_profile -rw-r--r--. root root system_u:object_r:admin_home_t:s0 .bashrc -rw-r--r--. root root system_u:object_r:admin_home_t:s0 .cshrc -rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log -rw-r--r--. root root system_u:object_r:admin_home_t:s0 install.log.syslog drwx------. root root unconfined_u:object_r:admin_home_t:s0 .ssh
由于.ssh目录及下面的文件都是新创建的,Type都是admin_home_t。这样SSH的进程是无法访问其资源的,将其改为ssh_home_t即可:
chcon -R -u system_u -t ssh_home_t .ssh/ ls -Z -a dr-xr-x---. root root system_u:object_r:admin_home_t:s0 . dr-xr-xr-x. root root system_u:object_r:root_t:s0 .. ... drwx------. root root system_u:object_r:ssh_home_t:s0 .ssh ls -Z .ssh/ -rw-------. root root system_u:object_r:ssh_home_t:s0 authorized_keys -rw-------. root root system_u:object_r:ssh_home_t:s0 id_rsa