网站搜索

如何在 Linux 中更改 SSH 端口


SSHSecure Shell 守护进程是一种网络协议,用于通过使用强加密技术的不安全网络的安全通道对 Linux 系统执行远程安全登录。

SSH 协议最基本的实用程序之一是能够访问远程 Linux 计算机上的 Unix shell 并执行命令。然而,SSH 协议可以提供其他实现,例如通过该协议创建安全 TCP 隧道的能力、在计算机之间远程安全地传输文件或充当类似 FTP 的服务的能力。

SSH服务使用的标准端口是22/TCP。但是,您可能希望更改 Linux 服务器中的 SSH 默认端口,以便通过隐蔽性实现某种安全性,因为标准 22/TCP 端口不断成为互联网中黑客和机器人漏洞的攻击目标。

要更改 Linux 中的 SSH 服务默认端口,首先需要打开主 SSH 守护程序配置文件,以便使用您最喜欢的文本编辑器进行编辑,方法是发出以下命令并进行以下更改。

vi /etc/ssh/sshd_config

sshd_config 文件中,搜索并注释以 Port 22 开头的行,方法是在该行前面添加主题标签 (#)。在此行下方,添加新的端口行并指定绑定 SSH 所需的端口。

在此示例中,我们将配置 SSH 服务以绑定并侦听端口 34627/TCP。确保选择随机端口,最好高于1024(标准知名端口的上限值)。可为 SSH 设置的最大端口为 65535/TCP

#Port 22
Port 34627

完成上述更改后,重新启动 SSH 守护程序以反映更改,并发出 netstat 或 ss 命令以确认 SSH 服务侦听新的 TCP 端口。

systemctl restart ssh
netstat -tlpn| grep ssh
ss -tlpn| grep ssh

在基于 CentOSRHEL Linux 的发行版中,安装 policycoreutils 软件包并添加以下规则来放宽 SELinux 策略,以便 SSH 守护进程绑定新港口。

yum install policycoreutils
semanage port -a -t ssh_port_t -p tcp 34627
semanage port -m -t ssh_port_t -p tcp 34627
systemctl restart sshd
netstat -tlpn| grep ssh
ss -tlpn| grep ssh

另外,不要忘记更新特定于您自己安装的 Linux 发行版的防火墙规则,以便允许在新添加的 SSH 端口上建立传入连接。