在 CentOS 6.2 版(最终版)的多个端口上运行 SSHD

use*_*468 7 ssh redhat centos centos6.2

我正在运行 CentOS 6.2 版(最终版)。

我想要监听 22 和 1022 端口的 sshd 端口。

我已将以下几行添加到 /etc/ssh/sshd_config:

Port 22
Port 1022
Run Code Online (Sandbox Code Playgroud)

并重新启动 sshd 并关闭 iptables,但是我无法连接到端口 1022 上的 sshd。

即使我执行以下操作

#Port 22
Port 1022
Run Code Online (Sandbox Code Playgroud)

sshd 继续侦听端口 22,不侦听端口 1022。我尝试了除 1022 之外的其他端口值,但没有成功。

帮助!

use*_*517 12

如果您使用的是 CentOS 5,您所描述的配置确实有效,但快速测试表明 CentOS 6 上的 sshd 不会绑定到 1023 以下的任何端口,但 22 除外 - 我目前找不到这方面的参考。如果要在多个端口上访问 sshd,请选择一个 >=1024。


更新 - 这与 SELinux 相关。当前政策不允许 sshd 绑定到 1023 以下的非标准端口(如实验所证实)例如

semanage port -l | grep 22
ssh_port_t                     tcp      22
Run Code Online (Sandbox Code Playgroud)

如果要添加额外的端口 <=1023,则必须在 SELinux 中明确允许它

semanage port -a -t ssh_port_t  -p tcp 1022
semanage port -l | grep 22
ssh_port_t                     tcp      1022, 22
Run Code Online (Sandbox Code Playgroud)

然后重启sshd

netstat -tnlp
tcp      0    0 0.0.0.0:22          0.0.0.0:*             LISTEN      25376/sshd
tcp      0    0 0.0.0.0:1022        0.0.0.0:*             LISTEN      25376/sshd
Run Code Online (Sandbox Code Playgroud)