SELinux 使用 RSA 密钥阻止 ssh
Posted
技术标签:
【中文标题】SELinux 使用 RSA 密钥阻止 ssh【英文标题】:SELinux prevents ssh with RSA key 【发布时间】:2015-04-25 17:14:17 【问题描述】:我忘记了我在其中一台 Web 服务器上启用了 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 共享上的主目录?
或者也许我错过了其他东西?
谢谢, 蒂姆
【问题讨论】:
【参考方案1】:如果restorecon
不起作用,我通常会尝试audit2why
和/或audit2allow
来找出违反了什么政策。这并不是说我应用了生成的政策变更建议,只是它们为解决问题提供了非常好的信息。
【讨论】:
【参考方案2】:宾果游戏!!
当我运行 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 以及您使用 audit2 的建议为什么允许我破案!
[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 ~]$
砰!有用。感谢您的帮助!
【讨论】:
当然!作为形式问题,您应该将您如何解决问题的格式化内容放入您的问题中,任何特定的 cmets 反对答案,然后“接受”有效的答案。继续使用 SELinux,它对安全系统很重要! :)以上是关于SELinux 使用 RSA 密钥阻止 ssh的主要内容,如果未能解决你的问题,请参考以下文章