服务器 SSH 安全加固:改端口、禁密码、只留密钥登录

举报
yd_214534406 发表于 2026/11/08 09:56:26 2026/11/08
【摘要】 新开一台云服务器,第一件事往往不是装应用,而是把 SSH 加固好。SSH 是服务器的正门,默认配置暴露在公网上,每天都会被成千上万次的密码爆破扫描。加固的思路很简单:让攻击者连门都摸不到,就算摸到也打不开。一、改默认端口:挡掉九成以上的批量扫描SSH 默认跑在 22 端口,全网的扫描器都在扫它。把端口改成一个不常用的高位端口,比如 22022,能直接过滤掉绝大多数只扫默认端口的自动化脚本。这...

新开一台云服务器,第一件事往往不是装应用,而是把 SSH 加固好。SSH 是服务器的正门,默认配置暴露在公网上,每天都会被成千上万次的密码爆破扫描。加固的思路很简单:让攻击者连门都摸不到,就算摸到也打不开。

一、改默认端口:挡掉九成以上的批量扫描

SSH 默认跑在 22 端口,全网的扫描器都在扫它。把端口改成一个不常用的高位端口,比如 22022,能直接过滤掉绝大多数只扫默认端口的自动化脚本。这招防不住定向攻击,但批量扫描的噪音会立刻安静下来。

改法在 /etc/ssh/sshd_config 里:把 Port 22 改成目标端口,重启 sshd 生效。改之前先确认防火墙已经放行了新端口,否则改完自己也连不上。稳妥的做法是先加新端口、验证能登录,再关掉 22。

二、禁密码登录,只留密钥

密码再复杂也架不住字典爆破,而且很多弱口令是人随手设的。密钥登录从根本上断了这条路:服务器上只存公钥,没有私钥谁也进不来。

在 sshd_config 里把 PasswordAuthentication 设为 no,同时确认 PubkeyAuthentication 为 yes。改之前先确认自己的密钥已经能正常登录,并且手头有备用登录方式——一旦把自己锁在外面,恢复起来很麻烦。改完重启 sshd,用密码试一次,确认已被拒绝,才算真正生效。

三、禁 root 直接登录

root 是所有攻击者的首选目标。禁止 root 直接用 SSH 登录,攻击者就算猜中了密码也没有入口。做法是把 PermitRootLogin 设为 no,日常管理用普通用户登录后再 sudo 提权。

如果确实需要 root 权限的操作,sudo 完全可以覆盖。保留 root 的本地控制台登录即可,远程只走普通用户加密钥这一条路。

四、收紧能登录的用户

默认情况下,系统上所有有 shell 的用户都能尝试 SSH 登录。可以用 AllowUsers 在 sshd_config 里写死一个白名单,只允许指定的管理账号登录,其他账号一律拒绝。账号越少,攻击面越小。

同时把不需要登录的系统账号、测试账号及时清理或锁定。很多入侵都是从一个早就没人用的旧账号开始的。

五、失败登录要有防线

即使前面几层都做了,fail2ban 这类工具仍然值得装。它监听登录失败日志,某个 IP 短时间内失败次数超标就自动把这个 IP 封一段时间。配合密钥登录,暴力破解基本没有得手的可能。

另外养成看日志的习惯:定期看 /var/log/auth.log(或 journalctl -u ssh),失败登录的来源 IP、尝试的用户名一目了然。发现某个 IP 持续试探,可以直接在防火墙里永久封掉。

小结

SSH 加固没有银弹,靠的是层层设防:改端口挡批量扫描、密钥登录断密码爆破、禁 root 远程登录、用户白名单收紧入口、fail2ban 兜底。每一步都不难,加起来就是一道攻击者很难跨过的门。新服务器上线先花十分钟做完这五步,比事后处理入侵要省心得多。

(本文为个人运维实践记录。)

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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