如何允许从给定的 IP 范围进行基于密码的登录,强制其他人使用 PubKey

如何允许从给定的 IP 范围进行基于密码的登录,强制其他人使用 PubKey

我们想设置您的一台 RHEL 服务器,以允许从我们的内部网络进行基于密码的登录,并禁止使用密码进行外部登录。您知道如何在不运行其他守护进程的情况下实现这一点吗?内部网络位于不同的接口上,但我不知道如何配置 SSHd 来区分接口。

答案1

您需要“Match”指令。例如:

PasswordAuthentication no
Match Address 192.168.0.0/16
   PasswordAuthentication yes

有关详细信息,请参阅 sshd_config(5)。

这就是你问题的答案。但是,一般来说,密钥可能比密码更好,原因有很多,其中之一就是能够使用 ssh-agent(1)。你可能需要仔细考虑是否真的有允许使用密码的正当理由。

答案2

我认为没有办法只使用一个 ssh 服务器来实现这一点。我认为更大的问题是你为什么要这样做?是否有一些程序上的原因让你不能一直禁止密码并使用公钥?

一种方法是在服务器上运行两个 sshd 实例,使用不同的配置和不同的端口。使用 iptables 允许在一个接口上访问一台服务器,在另一个接口上访问另一台服务器,将一个设置为仅允许密码,另一个设置为仅允许公钥。

相关内容