ubuntu服务器ssh安全加固是上线前必须完成的基础动作,需禁用密码登录强制密钥认证、修改默认端口并限制允许用户、启用fail2ban防护、优化会话与认证参数。

Ubuntu服务器SSH安全加固不是“可选项”,而是上线前必须完成的基础动作。默认配置下,22端口+密码登录+允许root访问,等于把钥匙挂在门口——自动化扫描工具几小时内就能找到并尝试破解。
禁用密码登录,强制密钥认证
这是最有效的第一道防线。密码再复杂也扛不住暴力枚举,而密钥认证本质是数学难题,安全性高出几个数量级。
- 在本地生成高强度密钥对:使用
ssh-keygen -t ed25519 -a 100 -C "your-identifier"(推荐Ed25519算法,比RSA更轻更快更安全) - 将公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip - 编辑
/etc/ssh/sshd_config,确认以下两行:PubkeyAuthentication yesPasswordAuthentication no - 重启前务必用
sshd -t检查语法,再开新终端验证连接,避免被锁死
修改默认端口并限制登录用户
22端口是攻击者的首要目标。改端口虽不能防高级攻击,但能过滤掉90%以上的脚本扫描;配合用户白名单,进一步缩小攻击面。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 在
/etc/ssh/sshd_config中设置:Port 5022(避开0–1023常用端口,建议选49152–65535之间) - 明确指定允许登录的普通用户:
AllowUsers deploy admin(不要写root) - 更新UFW防火墙规则:
sudo ufw allow 5022/tcp,并禁用旧端口:sudo ufw deny 22 - 若使用云服务器,别忘了同步调整安全组/网络ACL策略
启用Fail2Ban并配置连接防护
即使做了密钥认证,错误登录尝试仍会暴露IP和用户行为。Fail2Ban能自动识别并封禁异常IP,是应对暴力探测的实际手段。
- 安装:
sudo apt install fail2ban - 复制默认配置:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - 编辑
jail.local,调整关键参数:findtime = 600(10分钟内)maxretry = 3(最多3次失败)bantime = 86400(封禁24小时) - 确保SSH jail启用:
enabled = true,并指定监听端口:port = 5022 - 启动服务:
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
优化会话与认证行为
防止闲置连接堆积、限制重试次数、缩短超时窗口,这些细节能显著降低被利用风险,也提升资源利用率。
- 在
/etc/ssh/sshd_config中添加或修改:MaxAuthTries 3(单次连接最多尝试3次密码/密钥)ClientAliveInterval 300(每5分钟发一次保活包)ClientAliveCountMax 2(连续2次无响应即断开)LoginGraceTime 60(登录宽限期仅60秒) - 重启SSH后验证:
sudo systemctl restart ssh - 观察日志确认生效:
sudo journalctl -u ssh --since "1 hour ago" | grep "Failed"










