多端口 SSH 的配置

多端口 SSH 的配置

我需要在两个端口上监听 SSH:22 用于托管管理员访问,26 用于常规访问。我想禁止 26 上的 root 登录,并禁止端口 22 上除内部 IP 之外的所有 IP。后者可以通过 iptables 规则完成,但我不知道前者。有什么想法吗?

答案1

在 中/etc/ssh/sshd_config,进行以下更改。查找以下行Port 22并在其下方添加类似的行。

Port 22
Port 26

保存文件并重新启动 sshd 守护程序。

我在为端口 22 上的内部用户启用了 ssh,但需要在端口 2222 上进行外部连接的情况下执行此操作。这会将 ssh 守护程序绑定到两个端口号。

答案2

您可以使用以下-f选项sshd指定备用配置文件。在配置文件中,您需要使用

Port 26 

指令来改变 sshd 正在监听的端口。

PermitRootLogin no

禁用 root 登录

然后你可以做类似的事情

/usr/sbin/sshd -f /etc/ssh/sshd_config_port_26

您可能需要复制标准 sshd 启动脚本并修改它们,以便可以在启动时启动端口 26 服务。

你为什么做这个 ?

答案3

/etc/ssh/sshd_config使用单个 sshd 服务,您还可以按如下方式设置文件:

首先,确保监听两个端口:

Port 22
Port 26

其次,使用匹配关键字根据连接的端口更改配置:

Match LocalPort 22
    PermitRootLogin yes

Match LocalPort 26
    PermitRootLogin no

笔记: 匹配部分通常放在文件的末尾,/etc/ssh/sshd_config因为它们会覆盖之前的所有内容。

答案4

假设 sshd 将使用特定于命令行的配置文件运行,那么您可以创建在端口 26 上运行的第二个配置并执行引用该端口的第二个启动脚本。

相关内容