操作系统:CentOS 6.5 SSH v5.3
目标:
来自多个主机的 PubKeyAuthentication 允许 root 访问。
“group1”的用户可以使用他们提供的任何东西登录:PubKey、Password、GSSAPI、KerberosPassword;但它们只能从一个特定的 IP 到达:192.168.1.10
状态:root 访问权限已通过 中的多个from=""
-entries定义~/.ssh/authorized_keys
,并且按预期工作。
问题:group1 的用户可以从 192.168.1.10 或从其他地方到达;或完全锁定(使用早期测试的配置)。
我尝试了几种变体,但无济于事。
/etc/pam.d/sshd
实际上看起来像:
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
目前我在sshd_config
:
PermitRootLogin without-password
PasswordAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
UsePAM yes
AllowGroups root group1
Match Group [email protected]
KerberosAuthentication yes
PasswordAuthentication yes
GSSAPIAuthentication yes
PubKeyAuthentication yes
Match Group root
PubKeyAuthentication yes
有什么建议吗?
我找到了一个可行的解决方案。sshd 调试模式 (
/usr/sbin/sshd -ddd
) 表示缺少链接:如您所见,登录名匹配了正确的块;但由于
UsePAM yes
PAM显然否决了Match Address *
块中的“否”条目;见手册:最终配置如下所示:
只有在添加
KbdInteractiveAuthentication no
了 PAM 密码功能后,此块才被禁用,来自任何地方的用户现在都被成功拒绝。