修改SSH端口和监听地址可降低暴力破解风险:将Port 22改为非特权端口(如2222),添加ListenAddress限定IP;同步禁用root登录、密码认证,启用密钥认证并校验配置。

修改SSH服务端口和限制监听地址是提升服务器基础安全的有效手段,能显著降低暴力破解和自动化扫描攻击的风险。
修改SSH服务端口
默认22端口是攻击者扫描的首要目标。更改端口可过滤掉大量无差别探测流量。
- 编辑配置文件:sudo nano /etc/ssh/sshd_config
- 找到 Port 22 行,取消注释并改为非特权端口(如 Port 2222),避免使用1–1023范围内的端口(需root权限)
- 确保不删除原Port行,可先添加新端口,测试成功后再删旧端口
- 保存后执行 sudo systemctl restart sshd 重启服务
- 重启前务必确认防火墙已放行新端口(如 sudo ufw allow 2222),并保持当前SSH会话不断开,建议新开终端验证连接
限定SSH监听地址
若服务器有多个网卡或IP(如公网+内网),应禁止SSH在无关接口上响应请求,缩小暴露面。
- 在 /etc/ssh/sshd_config 中添加或修改 ListenAddress 行
- 仅监听内网管理IP:例如 ListenAddress 192.168.1.100
- 若仅允许本地登录,可设为 ListenAddress 127.0.0.1(配合跳板机或内网运维)
- 支持多行配置,如同时监听IPv4和IPv6特定地址;重复该指令即可
- 修改后同样需重启sshd,并用 sudo ss -tlnp | grep :2222 检查监听是否生效
配套必须做的安全检查
仅改端口和监听地址不够,需同步关闭高危配置,否则加固效果大打折扣。
- 禁用root远程登录:PermitRootLogin no
- 禁用密码认证(推荐):PasswordAuthentication no,改用密钥登录
- 限制登录用户:AllowUsers alice bob@192.168.1.*(支持用户名+IP通配)
- 设置登录失败锁定(需安装fail2ban)或缩短超时:LoginGraceTime 60
- 每次修改后运行 sudo sshd -t 校验配置语法,避免重启失败导致失联
验证与回滚准备
生产环境操作前,务必预留应急通道。
- 新端口连接测试命令:ssh -p 2222 user@server_ip
- 确认新连接稳定后,再关闭旧端口监听(删除或注释 Port 22)
- 保留一个未退出的原始SSH会话,直到新连接完全可用
- 记录完整操作步骤和配置快照(如 sudo cp /etc/ssh/sshd_config{,.bak-$(date +%F)})
- 若使用云服务器,注意安全组/网络ACL也需同步更新端口规则










