我忘了我在我的一个网络服务器上启用了SELinux。因此,当我使用我的用户帐户和ssh密钥登录主机时,我收到了权限被拒绝的错误。
[TimothyDunphy@JEC206429674LM:~] #ssh bluethundr@web1.somedomain.com
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
嗯...所以我安慰了服务器并且能够登录。我把审核日志记录下来了,这就是我所看到的:
type=USER_LOGIN msg=audit(1429981690.809:394593): pid=17074 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=login acct="bluethundr" exe="/usr/sbin/sshd" hostname=? addr=47.18.111.100 terminal=ssh res=failed'
在谷歌上搜索答案时,我得到了运行此命令的建议:
[root@web1:~] #restorecon -R -v /home/bluethundr/.ssh
[root@web1:~] #
但是当我再次登录时,在做完之后,我得到了相同的结果。权限被拒绝,日志中也出现相同的错误。
我能想到的另一件事是用户的主目录是从NFS共享挂载的。可能有一些SELinux咒语我可以用来允许SSH到NFS共享上的主目录吗?
或许我错过了别的什么?
谢谢, 添
答案 0 :(得分:9)
如果restorecon
无效,我通常会尝试audit2why
和/或audit2allow
来查找违反的政策。这并不是说我应用生成的政策变更建议,只是因为它们可以提供非常好的信息来解决问题。
答案 1 :(得分:8)
宾果!!
当我运行audit2why -w时,这是我看到的输出:
[root@web1:~] #grep ssh /var/log/audit/audit.log | audit2why -w
Was caused by:
The boolean use_nfs_home_dirs was set incorrectly.
Description:
Allow use to nfs home dirs
Allow access by executing:
# setsebool -P use_nfs_home_dirs 1
type=AVC msg=audit(1429983513.529:394784): avc: denied { read } for pid=19748 comm="sshd" name="authorized_keys" dev="0:40" ino=275968 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:nfs_t:s0 tclass=file
所以看起来我对这是关于NFS的预感以及你使用audit2why的建议允许我破解这个案例!
[TimothyDunphy@JEC206429674LM:~/creds] #ssh bluethundr@web1.jokefire.com
Last login: Sat Apr 25 13:41:02 2015 from ool-2f126f64.dyn.optonline.net
[bluethundr@web1 ~]$
的Bam !!有用。谢谢你的帮助!