我需要在两个端口上监听 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 上运行的第二个配置并执行引用该端口的第二个启动脚本。