A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区


在 Linux 中更改 SSH 端口



前言

默认情况下, SSH 侦听端口 22 。 更改默认 SSH 端口可以降低被自动攻击的风险,从而为服务器增加额外的安全层。
和更改默认端口相比,将防火墙配置为仅允许从特定主机访问端口 22 则更加简单和安全。
本教程介绍如何更改 Linux 中的默认 SSH 端口。我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口。

选择新的端口号

在 Linux 中,低于 1024 的端口号保留用于众所周知的服务,并且只能由 root 绑定。虽然您可以使用 1-1024 范围内的端口进行 SSH 服务,但为了避免将来出现端口分配问题,建议选择 1024 以上的端口。
在此示例中,将 SSH 端口更改为 5522 ,当然您可以选择任何您喜欢的端口。

调整防火墙

在更改 SSH 端口之前,首先需要调整防火墙以允许新 SSH 端口上的流量。

如果您使用的是 Ubuntu 的默认防火墙配置工具 UFW , 请运行以下命令来打开新的 SSH 端口:

[Shell] 纯文本查看 复制代码
sudo ufw allow 5522/tcp

在 CentOS 中,默认的防火墙管理工具是 FirewallD 。要打开新端口,请运行以下命令:

[Shell] 纯文本查看 复制代码
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcp
sudo firewall-cmd --reload

CentOS 用户还需要调整 SELinux 规则以允许新的SSH端口:

[Shell] 纯文本查看 复制代码
sudo semanage port -a -t ssh_port_t -p tcp 5522

如果您使用 iptables 作为防火墙,则以下命令将打开新的 SSH 端口:

[Shell] 纯文本查看 复制代码
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT


编辑 SSH 配置

使用文本编辑器打开 SSH 配置文件 /etc/ssh/sshd_config :
[Shell] 纯文本查看 复制代码
sudo nano /etc/ssh/sshd_config

搜索以 Port 22 开头的行。在大多数情况下,此行将以 # 开头。删除 # 并输入将用于代替标准 SSH 端口 22 的新 SSH 端口号。

Port 5522
修改 SSH 配置文件时要格外小心。不正确的配置可能导致 SSH 服务无法启动。

完成后保存文件并重新启动 SSH 服务以应用更改:

[Shell] 纯文本查看 复制代码
sudo systemctl restart ssh

在 CentOS 中, ssh 服务命名为 sshd :

[Shell] 纯文本查看 复制代码
sudo systemctl restart sshd

要验证 SSH 守护程序是否正在侦听新端口 5522 ,请键入:

[Shell] 纯文本查看 复制代码
ss -an | grep 5522


使用新的 SSH 端口

现在您已经更改了要登录远程的计算机 SSH 端口,您需要在登录时指定新端口。
使用 -p <port_number> 选项指定端口:
[Shell] 纯文本查看 复制代码
ssh -p 5522 username@remote_host_or_ip


总结

通过以上方式,就可以修改我们的SSH端口,但是一般情况下不进行修改,SSH本身很安全,但如果在复杂网络环境中,有此需求,就可以考虑。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马