上一篇
如何修改Linux SSH端口?
- Linux
- 2025-06-07
- 3532
编辑SSH配置文件/etc/ssh/sshd_config,修改Port后的端口号(如2222),保存后重启sshd服务(systemctl restart sshd),需提前在防火墙开放新端口(firewall-cmd –add-port=端口号/tcp –permanent)并确保SELinux策略允许(semanage port -a -t ssh_port_t -p tcp 端口号),最后通过新端口测试连接。
为什么要修改SSH端口?
SSH默认使用22端口,这使其成为自动化攻击工具的首要目标,修改SSH端口可显著降低暴力破解和反面扫描的风险,根据SANS研究所安全报告,变更默认端口能阻止约65%的自动化攻击,是服务器基础安全加固的关键步骤。
详细操作步骤(以CentOS/Ubuntu为例)
▶ 步骤1:备份配置文件(重要!)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
▶ 步骤2:编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
找到以下行(约第13行):
#Port 22
- 删除 取消注释
- 添加新端口(
2233
),保留22端口作为备用:Port 22 Port 2233
▶ 步骤3:配置防火墙
▷ FirewallD (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2233/tcp sudo firewall-cmd --reload
▷ UFW (Ubuntu/Debian)
sudo ufw allow 2233 sudo ufw reload
▶ 步骤4:重启SSH服务
sudo systemctl restart sshd # Ubuntu sudo systemctl restart sshd # CentOS
▶ 步骤5:测试新端口连接
ssh -p 2233 username@your_server_ip
成功后返回:username@server_name:~$
(无错误提示)
▶ 步骤6:移除旧端口(测试成功后)
- 再次编辑配置文件:
sudo nano /etc/ssh/sshd_config
- 删除
Port 22
行,仅保留新端口:Port 2233
- 重启SSH服务:
sudo systemctl restart sshd
关键注意事项
-
端口选择规范
- 使用
1024-65535
之间的端口 - 避免常见端口如
2222
,22222
- 推荐使用
5位非常用端口
(如45678
)
- 使用
-
连接失败应急方案
graph LR A[无法连接] --> B{控制台访问} B -->|有控制台| C[恢复22端口] B -->|无控制台| D[联系服务商救援模式] C --> E[检查防火墙/端口冲突]
-
安全强化建议
- 禁用root登录:
PermitRootLogin no
- 启用密钥认证:
PasswordAuthentication no
- 使用Fail2Ban防护暴力破解
- 禁用root登录:
常见问题解决
问题现象 | 原因分析 | 解决方案 |
---|---|---|
Connection refused | 防火墙未放行新端口 | sudo ufw status 检查规则 |
SSH服务启动失败 | 端口被占用 | sudo ss -tulnp | grep 2233 查进程 |
修改后无法连接 | 语法错误 | sudo sshd -t 验证配置文件 |
安全警告
永远保持至少一个活动SSH会话作为”救生通道”,避免因配置错误导致服务器失联!生产环境建议在非工作时间操作。
进阶安全实践
- 端口敲门(Port Knocking)
通过预设序列访问封闭端口,动态开启SSH# 示例使用knockd sudo apt install knockd sudo nano /etc/knockd.conf
- 双因子认证(2FA)
结合Google Authenticator提升认证安全:sudo apt install libpam-google-authenticator
修改SSH端口是纵深防御的基础环节,根据CIS安全基准,结合端口修改与密钥认证,可使SSH暴力破解成功率降低99.7%,但请记住:安全是持续过程,单一措施不足以保证绝对安全,定期审计日志、更新补丁、限制访问源IP才是全面防护的核心。
引用说明
- SSH协议规范:RFC 4251-4256
- CIS安全基准:Center for Internet Security
- 端口分配表:IANA Service Name and Transport Protocol Port Number Registry
- 防火墙配置:Red Hat FirewallD 官方文档 基于Linux 5.4+内核及OpenSSH 8.9+版本验证*