Linux SSH端口修改后如何远程连接?

为什么要修改SSH默认端口

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

Linux 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配置文件

使用vimnano编辑器打开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系统):

Linux SSH端口修改后如何远程连接?

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,强制普通用户通过susudo提权,降低root账户被暴力破解的风险。

使用密钥认证替代密码登录

在配置文件中设置PasswordAuthentication no,启用SSH密钥对认证(需提前生成密钥对并上传公钥至~/.ssh/authorized_keys),密钥认证的安全性远高于密码,能有效抵御暴力破解。

限制访问IP或用户

通过sshd_configAllowUsersAllowHosts指令限制允许登录的用户或IP,

AllowUsers admin john@192.168.1.100

仅允许admin用户和john用户从指定IP登录。

Linux SSH端口修改后如何远程连接?

定期更新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服务器基础安全加固的重要步骤,但需结合防火墙配置、密钥认证、访问限制等多层措施,才能构建有效的安全体系,操作过程中务必谨慎,测试无误后再关闭默认端口,避免因配置错误导致服务器失联,通过合理的安全策略,可显著提升服务器的抗攻击能力,保障数据与服务的安全稳定运行。