sshd – 根据传入主机指定不同的密码

根据man sshd_config ,我可以指定一个支持的密码列表,例如:

Ciphers arcfour, 3des-cbc 

问题是在一个主机上运行的客户端应用程序不支持与networking其余部分相同的密码

因此,有没有办法指定一个密码在所有情况下使用,但只有一个主机exception?

Ciphers指令中列出的Ciphers应该先进行第一次匹配,因此将恶意客户端的密码放在列表中。 networking中的其他客户端将首先协商列表中较高的密码(如果有的话),并且您的stream氓客户端应该通过较弱的密码。

不幸的是,如果明确地设置,这将仍然允许其他客户端使用较弱的密码。 不幸的是,你不能在一个Match块中放置一个Ciphers指令。 我能想到的另一个选项是在奇数客户端的不同端口上运行不同的服务器,并限制对该主机的第二个sshd实例的访问。

从我能看到的唯一select是使用ForceCommand脚本。

使用Match不应该太棘手:

ForceCommand

Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block.

以上是来自手册页。 我在这里find更多: SSHD网守脚本

– 编辑 –

我所能想到的最好的方法是在另一个端口上运行单独的SSHD实例,然后将-s添加到其中一个redirect示例中,以仅捕获应用程序的IP,并将其redirect到使用正确密码configuration的其他实例: http:// www。 cyberciti.biz/faq/linux-port-redirection-with-iptables/