sshd是否可以仅在某些端口上接受密码?


24

我知道可以sshd通过使用多个Port指令在多个端口上进行监听。但是,是否可以独立调整每个端口的设置?特别是,是否可能有一个端口允许密码验证,而另一个端口却不允许呢?


1
顺便说一句:我这样做的原因是我想允许我的LAN上的密码,而不是来自WAN的密码。我的WAN防火墙仅允许连接到限制性更高的端口。
劳伦斯·贡萨尔维斯

1
如果您更喜欢使用标准端口号,另请参阅按IP地址的限制
ændrük

Answers:


32

这可以通过Match指令来完成。

在中/etc/sshd_config,声明多个端口:

Port 22
Port 2222

然后,在文件的末尾添加以下内容:

Match LocalPort 2222
PasswordAuthentication no

所有设置将在端口之间共享,除了密码认证将在端口2222上禁用。


+1非常有趣
CarlosCampderrós2014年

太糟糕MatchAllowUsers。对于需要限制特定端口用户的任何人,您都可能会运行多个sshd实例。
鲍勃

0

sshd我不相信这是一个单一的过程,但设置第二个配置文件并运行两个sshd侦听器应该相当容易,其中一个侦听器位于密码端口,另一个侦听器位于非密码端口。


3
我发现实际上有一种方法可以对单个sshd实例执行此操作。查看我发布的答案。不管怎么说,还是要谢谢你。
劳伦斯·贡萨尔维斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.