在CentOS系统中,默认情况下,SSH服务的端口是22,为了提高服务器的安全性,修改root用户的登录端口是一个常见的操作,通过修改默认端口,可以有效减少自动化攻击和扫描的威胁,以下是详细步骤和注意事项,帮助您顺利完成CentOS修改root端口的操作。

准备工作
在修改端口之前,建议先完成以下准备工作,以确保操作过程的安全性和可逆性。
-
备份重要配置文件
修改SSH端口前,先备份原始的SSH配置文件,避免因配置错误导致无法远程登录,可以使用以下命令备份:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
-
确保当前SSH连接稳定
确保您当前的SSH连接稳定,避免因配置错误导致连接中断,建议在本地测试环境中操作,或确保有物理访问服务器的权限。 -
检查防火墙设置
确认防火墙是否允许新的端口访问,如果防火墙开启,后续需要添加新端口的规则。
修改SSH配置文件
修改SSH配置文件是更改端口的核心步骤,需要编辑/etc/ssh/sshd_config文件。
-
编辑SSH配置文件
使用vim或nano编辑器打开文件:vim /etc/ssh/sshd_config
-
找到并修改Port行
在文件中找到以下行(可能被注释):#Port 22取消注释并将
22修改为您的新端口(例如2222):Port 2222注意:端口范围建议在
1024-65535之间,避免使用常用端口。
-
禁用root直接登录(可选)
为了进一步增强安全性,可以禁用root直接登录,找到以下行:PermitRootLogin yes修改为:
PermitRootLogin no这样只能通过普通用户登录后再切换到root用户。
-
保存并退出
在vim中按Esc,输入wq保存退出。
更新防火墙规则
如果系统启用了防火墙(如firewalld或iptables),需要添加新端口的访问规则。
-
使用firewalld(CentOS 7及以上)
firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload
-
使用iptables(CentOS 6及以下)
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT service iptables save
重启SSH服务
配置完成后,重启SSH服务使修改生效:
systemctl restart sshd
测试新端口
在重启SSH服务后,使用新端口测试连接:

ssh root@服务器IP -p 2222
如果连接成功,说明修改成功,如果失败,检查防火墙和配置文件是否有误。
常见问题及注意事项
-
端口冲突
确保新端口未被其他服务占用,可以使用以下命令检查:netstat -tulnp | grep 端口号
-
防火墙规则未生效
如果无法连接,检查防火墙是否正确添加了端口规则,并确保防火墙服务已重启。 -
保留原端口(临时措施)
建议在修改后保留原端口一段时间,确认新端口稳定后再关闭原端口,避免因配置错误导致无法登录。
FAQs
问题1:修改SSH端口后无法连接,如何解决?
解答:首先检查防火墙是否开放了新端口,使用firewall-cmd --list-ports或iptables -L查看规则,确认sshd_config文件中端口配置是否正确,并重启SSH服务,如果仍无法连接,可能是SELinux导致,可以临时关闭SELinux测试:setenforce 0。
问题2:如何禁止root用户通过SSH登录?
解答:在/etc/ssh/sshd_config文件中,找到PermitRootLogin行,将其值修改为no,保存后重启SSH服务,之后需要先以普通用户登录,再使用su -或sudo切换到root用户。