Linux SSH端口修改后如何远程连接?
为什么要修改SSH默认端口
SSH(Secure Shell)是Linux系统中远程管理服务器的核心工具,默认监听22端口,22端口是网络攻击者扫描频率最高的端口之一,默认配置容易成为暴力破解、字典攻击的目标,修改SSH端口相当于为服务器增加一道“隐形屏障”,能有效降低自动化攻击的风险,提升服务器安全性,在企业环境中,通过修改端口可以避免与内部网络中其他服务冲突,便于统一管理访问策略。

修改SSH端口的具体步骤
备份原始配置文件
修改任何系统配置前,备份原始文件是重要习惯,SSH主配置文件通常位于/etc/ssh/sshd_config,使用以下命令备份:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
若后续配置出错,可通过sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config恢复。
编辑SSH配置文件
使用vim或nano编辑器打开sshd_config文件:
sudo vim /etc/ssh/sshd_config
找到#Port 22这一行(默认被注释),取消注释并将22修改为自定义端口(建议选择1024-65535之间的未占用端口,例如2222、22222等,避免使用知名端口如80、443),注意:若需同时开放多个端口,可添加多行Port指令,如:
Port 2222
Port 22222
配置防火墙规则
修改端口后,需确保防火墙允许新端口的流量访问,以firewalld为例(CentOS/RHEL系统):
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
对于iptables(Ubuntu/Debian系统):

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
重启SSH服务
使配置生效,重启SSH服务:
sudo systemctl restart sshd
注意:为防止因配置错误导致无法远程登录,建议先在当前终端测试新端口是否可用(如ssh -p 2222 user@服务器IP),确认无误后再关闭旧端口。
修改端口后的安全加固建议
禁用root直接登录
在sshd_config中设置PermitRootLogin no,强制普通用户通过su或sudo提权,降低root账户被暴力破解的风险。
使用密钥认证替代密码登录
在配置文件中设置PasswordAuthentication no,启用SSH密钥对认证(需提前生成密钥对并上传公钥至~/.ssh/authorized_keys),密钥认证的安全性远高于密码,能有效抵御暴力破解。
限制访问IP或用户
通过sshd_config的AllowUsers或AllowHosts指令限制允许登录的用户或IP,
AllowUsers admin john@192.168.1.100
仅允许admin用户和john用户从指定IP登录。

定期更新SSH服务
保持SSH服务版本与系统包同步,及时应用安全补丁:
sudo apt update && sudo apt upgrade openssh-server # Debian/Ubuntu
sudo yum update openssh-server # CentOS/RHEL
常见问题与解决方案
修改端口后无法连接
- 检查端口占用:使用
netstat -tuln | grep 2222确认端口是否被正确监听。 - 检查防火墙:确认防火墙规则已生效,且云服务器(如阿里云、腾讯云)安全组已开放新端口。
- 检查SELinux:若系统开启SELinux,需执行
semanage port -a -t ssh_port_t -p tcp 2222添加端口策略。
忘记修改前的端口
若未备份配置文件且无法通过新端口登录,可通过VNC控制台或物理终端进入系统,恢复sshd_config.bak备份文件后重启SSH服务。
修改SSH端口是Linux服务器基础安全加固的重要步骤,但需结合防火墙配置、密钥认证、访问限制等多层措施,才能构建有效的安全体系,操作过程中务必谨慎,测试无误后再关闭默认端口,避免因配置错误导致服务器失联,通过合理的安全策略,可显著提升服务器的抗攻击能力,保障数据与服务的安全稳定运行。