我们希望设置一台RHEL服务器以允许从内部networking进行密码login,并禁止使用外部login密码。 任何想法如何我们可以实现,而不运行另一个守护进程? 内部networking在不同的接口上,但是我不知道如何configurationSSHd以在接口之间进行差异化。
你需要“匹配”指令。 就像是:
PasswordAuthentication no Match Address 192.168.0.0/16 PasswordAuthentication yes
阅读sshd_config(5)了解详情。
这是你的问题的答案。 但是,一般来说,键可能是比密码更好的方法,因为很多原因,特别是使用ssh-agent(1)的能力。 你可能要仔细考虑你是否真的有一个允许密码的有效理由。
我不认为只有一个SSH服务器有办法做到这一点。 我认为更大的问题是你为什么要这样做? 有没有一些程序上的原因,你不能不禁止密码和使用公钥?
你可以这样做的一种方法是在服务器上运行两个sshd实例,使用不同的configuration和不同的端口。 使用iptables允许访问一个接口上的一个服务器,另一个设置为只允许密码,一个只允许公用密钥。