SELinux阻止无密码的SSHlogin

我想用authorized_keys连接一个我为git创build的用户帐户/var/git 。 但是,SELinux通过以下AVC消息来防止这种情况发生

 SELinux is preventing sshd(sshd_t) "read" var_t 

我是新来的SELinuxpipe理,但我明白,这个消息指出sshd是不允许读/var下的任何东西。 我如何重新标记允许它访问/var/git ? (没有把sshd放在允许模式下)

我已经尝试将/var/git/.ssh/authorized_keys标记为sshd_key_t ,但这不起作用。 提前致谢!

我不使用Git,所以我可能是错的,但如果我得到你的问题,你可能完全手工(即编辑/ etc / passwd)创build用户,不让系统知道/ var / git是一个用户主目录。 它通常将相关目录放在/etc/selinux/targeted/contexts/files/file_contexts.homedirs中。 例如,我有相同的设置,但使用/ var / svn,添加useradd,这里是该文件的摘录,自动添加:

 # # Home Context for user unconfined_u # /var/svn/[^/]*/.+ system_u:object_r:user_home_t:s0 /var/svn/[^/]*/.pulse(/.*)? system_u:object_r:gnome_home_t:s0 /var/svn/[^/]*/.gnome2(/.*)? system_u:object_r:gnome_home_t:s0 /var/svn/[^/]*/.*/plugins/nppdf\.so -- system_u:object_r:textrel_shlib_t:s0 /var/svn/[^/]*/.*/plugins/nppdf\.so.* -- system_u:object_r:textrel_shlib_t:s0 /var/svn/[^/]*/((www)|(web)|(public_html)|(public_git))(/.+)? system_u:object_r:httpd_user_content_t:s0 /var/svn/[^/]*/\.ssh(/.*)? system_u:object_r:ssh_home_t:s0 

(继续)

一旦这个设置,一个简单的restorecon -Rv / var / git应该做的伎俩。

这也可以通过使用ssh_home_t上下文来创build.ssh目录来解决。

例如

 context directory home_root_t /customhome user_home_dir_t /customhome/user ssh_home_t /customhome/user/.ssh ssh_home_t /customhome/user/.ssh/authorized_keys 

在RHEL上,我使用以下方法创build了一个用户:

 useradd gitlab --home /app/gitlab 

我经历了一段时间的debugging,弄清楚了正确的背景。 audit.log没有显示太多。 我也双重检查了/etc/selinux/targeted/contexts/files/file_contexts.homedirs ,并没有自动创build上下文。