2015-04-25 43 views
5

我忘记了我在我的一台Web服务器上启用了SELinux。所以当我用我的用户帐户和ssh密钥登录到主机时,我得到了拒绝权限的错误。SELinux使用RSA密钥阻止ssh

[[email protected]:~] #ssh [email protected] 
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' 

在google搜索这个问题的答案我的意见,运行此命令:

[[email protected]:~] #restorecon -R -v /home/bluethundr/.ssh 
[[email protected]:~] # 

但是,当我去重新登录,这样做后,我得到了同样的结果。权限被拒绝并且日志中出现相同的错误。

我唯一能想到的其他事情是用户的主目录是从NFS共享挂载的。可能有一些SELinux咒语可用于允许SSH到NFS共享的主目录?

或者我错过了别的东西?

感谢, 添

回答

9

如果restorecon没有工作,我一般尽量audit2why和/或audit2allow找到政策被侵犯的。这并不是说我应用了所产生的政策变更建议,只是为了解决问题提供了非常好的信息。

6

宾果游戏!

当我跑audit2why -w这是输出我看到:

[[email protected]:~] #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让我破案的预感!

[[email protected]:~/creds] #ssh [email protected] 
Last login: Sat Apr 25 13:41:02 2015 from ool-2f126f64.dyn.optonline.net 
[[email protected] ~]$ 

Bam !!有用。谢谢你的帮助!

+0

当然!作为一个形式问题,你应该把格式化的内容告诉你如何解决你的问题,针对答案的任何具体评论,然后“接受”有效的答案。继续使用SELinux,这对安全系统非常重要! :) –