一、前期准备
1、确认系统版本:在进行操作前,建议先确认 CentOS 的版本,不同版本的操作可能会有细微差异,但总体来说大同小异,可以通过以下命令查看系统版本:
cat /etc/centosrelease
2、备份配置文件:为防止修改过程中出现意外情况导致系统无法正常启动 SSH 服务,建议在修改前对 SSH 配置文件进行备份。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
二、修改 SSH 配置文件
1、打开配置文件:使用文本编辑器(如 vi、nano 等)打开 SSH 的配置文件/etc/ssh/sshd_config
,以 vi 编辑器为例,执行以下命令:
sudo vi /etc/ssh/sshd_config
2、查找并修改端口号:在配置文件中查找#Port 22
这一行,找到后去掉行首的注释符号#
,并将22
修改为你希望设置的新端口号,建议选择 1024 ~ 65535 之间的端口号,如果你想将端口号修改为2222
,则修改后的行应为Port 2222
。
3、保存文件并退出编辑器:完成修改后,按Esc
键退出编辑模式,然后输入:wq
保存文件并退出 vi 编辑器。
三、重启 SSH 服务
修改完配置文件后,需要重启 SSH 服务使更改生效,可以使用以下命令:
sudo systemctl restart sshd
四、配置防火墙规则(如果服务器启用了防火墙)
如果你的 CentOS 服务器启用了防火墙(如 firewalld),还需要在防火墙中开放新的 SSH 端口,以允许外部访问,以 firewalld 为例,假设你将 SSH 端口修改为了2222
,执行以下命令:
1、添加新端口到防火墙规则:
sudo firewallcmd zone=public addport=2222/tcp permanent
此命令将在公共区域打开 TCP 的2222
端口,并永久保存配置。
2、重新加载防火墙配置:
sudo firewallcmd reload
重新加载防火墙配置,使新添加的规则生效。
五、测试连接
完成以上步骤后,可以使用新的端口号尝试通过 SSH 客户端连接到服务器,以验证修改是否成功,如果你使用的是 OpenSSH 客户端,可以在终端中输入以下命令(假设服务器 IP 地址为192.168.1.100
):
ssh p 2222 user@192.168.1.100
其中user
是你在服务器上的用户名,如果能够正常连接,说明 SSH 端口修改成功。
六、常见问题及解决方法
1、修改端口后无法连接:首先检查是否准确修改了 SSH 配置文件中的端口号,并且确保防火墙已正确开放了新端口,如果服务器开启了 SELinux,可能会导致新的端口无法使用,需要向 SELinux 中添加相应的 SSH 端口权限,可以使用以下命令查看当前 SSH 服务的端口:
semanage port l | grep ssh
如果发现没有添加新端口,可以使用以下命令添加:
semanage port a t ssh_port_t p tcp <new_port>
其中<new_port>
为你修改后的 SSH 端口号。
2、重启 SSH 服务失败:可能是由于配置文件中存在语法错误或其他问题导致的,可以查看 SSH 服务的日志文件,通常位于/var/log/secure
或/var/log/messages
,根据日志中的错误信息进行排查和修复。
七、相关注意事项
1、安全风险:修改 SSH 端口可以增加服务器的安全性,因为默认的 22 端口容易被扫描和攻击,但同时,也要确保新端口的选择不与其他常用服务端口冲突,并且及时更新防火墙规则。
2、服务依赖:如果在修改 SSH 端口时服务器上还有其他服务依赖于 SSH 服务,可能会受到影响,在修改之前,需要评估这些服务的运行情况,并做好相应的准备工作。
3、备份恢复:在进行任何系统配置修改之前,都强烈建议备份相关的配置文件和服务数据,这样,在出现问题时可以快速恢复到修改前的状态。
八、FAQs
1、Q:修改 SSH 端口后,原来的 22 端口还能使用吗?
A:一般情况下,修改 SSH 端口后,原来的 22 端口将不再用于 SSH 服务,但如果你在修改过程中保留了Port 22
这行配置(即同时存在两个不同的端口监听),那么原来的 22 端口仍然可以正常使用,不过,为了提高安全性和避免混淆,建议只保留一个有效的 SSH 端口。
2、Q:如何在多个 CentOS 服务器上批量修改 SSH 端口?
A:如果要在多个 CentOS 服务器上批量修改 SSH 端口,可以使用自动化脚本来实现,编写一个 Bash 脚本,在其中包含上述修改 SSH 配置文件、重启 SSH 服务以及配置防火墙规则的命令,然后通过 SSH 或者其他远程管理工具在多台服务器上依次执行该脚本,这样可以大大提高操作效率,减少人工操作可能带来的错误。