云服务器 SSH 安全加固:密钥登录、改端口与 fail2ban 三件套

举报
yd_214683010 发表于 2026/11/13 06:21:53 2026/11/13
【摘要】 云服务器刚创建好,SSH 的 22 端口就已经暴露在公网上了。看一眼登录日志就知道:每天都有成百上千次密码爆破尝试,root、admin、test 这些用户名轮番被试。密码再复杂,也架不住 24 小时不停地撞库。真正管用的加固就三件套:密钥登录、改端口、fail2ban,半小时能做完,做完基本就清净了。第一件是密钥登录,代替密码。本地先生成一对密钥:ssh-keygen -t ed25519...

云服务器刚创建好,SSH 的 22 端口就已经暴露在公网上了。看一眼登录日志就知道:每天都有成百上千次密码爆破尝试,root、admin、test 这些用户名轮番被试。密码再复杂,也架不住 24 小时不停地撞库。真正管用的加固就三件套:密钥登录、改端口、fail2ban,半小时能做完,做完基本就清净了。第一件是密钥登录,代替密码。本地先生成一对密钥:ssh-keygen -t ed25519 -C "你的邮箱",一路回车会得到 ~/.ssh/id_ed25519(私钥,绝不外传)和 id_ed25519.pub(公钥)。把公钥传上服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户@服务器IP,传完先用密钥登录一次确认能进,再去改服务器上的 /etc/ssh/sshd_config:把 PasswordAuthentication 设为 no,PubkeyAuthentication 设为 yes,顺手把 PermitRootLogin 设为 prohibit-password(root 只能密钥登录)或直接 no(彻底禁 root 登录,改用普通用户加 sudo)。改完 systemctl reload sshd 生效。关键一步:先开一个新终端用密钥登录验证成功,再关掉当前会话,否则配错了会把自己锁在门外。私钥可以再加一层口令保护:生成时输入 passphrase,配合 ssh-agent 一次解锁、当天免输。第二件是改默认端口。爆破脚本大多只扫 22 端口,改成 2222 之类就能挡掉九成以上的盲扫。在 sshd_config 里加一行 Port 2222(保留 Port 22 这一行先别删,等验证通过再删),放行防火墙:sudo ufw allow 2222/tcp 或 sudo firewall-cmd --add-port=2222/tcp -- permanent && sudo firewall-cmd --reload,如果是云厂商的安全组,也要在控制台放行 2222。验证:ssh -p 2222 用户@服务器IP 能登录,再删掉 22 的放行规则。注意改端口只是减少噪音,不是真正的安全边界,绝不能因此就不做密钥登录。第三件是 fail2ban,专门对付还在坚持爆破的那一小撮。安装:Debian/Ubuntu 用 sudo apt install fail2ban,CentOS/RHEL 用 sudo yum install fail2ban。新建 /etc/jail.local,写入:[sshd] enabled = true port = 2222 maxretry = 5 findtime = 10m bantime = 1h,意思是 10 分钟内输错 5 次就封 IP 一小时。启动并设开机自启:sudo systemctl enable --now fail2ban,用 sudo fail2ban-client status sshd 查看封禁情况。被误封了自己的 IP 就用 sudo fail2ban-client set sshd unbanip 你的IP 解封。bantime 可以按需调大,长期被盯上的服务器设成 24 小时也不过分。三件套做完,登录日志会立刻安静下来。最后再补两条习惯:服务器上只留必要的用户,AllowUsers 限定能登录的用户名;定期看一眼 lastb 和 fail2ban 的封禁列表,确认没有异常来源。密钥登录防撞库、改端口降噪音、fail2ban 封坚持者,三层叠加之后,SSH 这扇门才算真正关严了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。