我希望允许该 192.168.1.0-192.168.1.255
范围内的任何人都能够使用密码或 SSH 密钥登录,但该范围之外的人只能使用 SSH 密钥登录。
这可以在没有多个 sshd 的情况下完成吗?
我在 Ubuntu 9.04 上。
我希望允许该 192.168.1.0-192.168.1.255
范围内的任何人都能够使用密码或 SSH 密钥登录,但该范围之外的人只能使用 SSH 密钥登录。
这可以在没有多个 sshd 的情况下完成吗?
我在 Ubuntu 9.04 上。
这是未经测试的,但是在最后设置这样的东西
sshd_config
应该可以工作:基本上,您在全球范围内允许公钥身份验证,在全球范围内禁止密码身份验证,然后专门为 192.168.1.0/24 子网中的任何人重新允许密码身份验证。
编辑:您可能已经在配置中的其他地方拥有前三行。如果您这样做,则无需再次添加它们。但是,“匹配”块必须位于文件末尾。
此外,该
RSAAuthentication
关键字特定于 SSH v1,这是您不允许的,对吧?是的,我想是这样。您可以使用 sshd_config 文件中的 AllowUser 和 MatchUser 指令来设置每个用户的配置指令。
我认为您可以通过使用 PAM 和 Pubkey auth 配置 sshd 来完成这项工作,然后将 PAM 配置为仅允许来自某些子网的访问。这个诡计有效,因为 sshd 不会向 PAM 询问任何关于基于密钥的身份验证的信息。
在 /etc/ssh/sshd_config 中(我认为这些都是 Ubuntu 上的默认值),例如:
在 /etc/pam.d/sshd 中取消注释 pam_access 行(我相信在 Ubuntu 上它以正确的顺序出现,但被注释掉了):
在 /etc/security/access.conf 中:
注意:我根本没有测试过这个。