Debian 服务器 SSH 安全加固实录:密钥登录、改端口与 fail2ban

举报
yd_281936295 发表于 2026/10/27 11:47:42 2026/10/27
【摘要】 这台 Debian 小服务器挂在公网上,SSH 的 22 端口每天都会被扫,auth.log 里满是失败登录。密码再复杂也架不住字典爆破,前阵子我把 SSH 加固了一遍,记下来以后照着做。一、密钥登录,关掉密码登录先在电脑上生成密钥:ssh-keygen -t ed25519,一路回车即可。再把公钥传到服务器:ssh-copy-id user@服务器。传完先用新终端试登,确认能登录再关当前会...

这台 Debian 小服务器挂在公网上,SSH 的 22 端口每天都会被扫,auth.log 里满是失败登录。密码再复杂也架不住字典爆破,前阵子我把 SSH 加固了一遍,记下来以后照着做。


一、密钥登录,关掉密码登录

先在电脑上生成密钥:ssh-keygen -t ed25519,一路回车即可。再把公钥传到服务器:ssh-copy-id user@服务器。传完先用新终端试登,确认能登录再关当前会话,这是防止把自己锁在门外的关键一步。确认无误后改 sshd_config:PasswordAuthentication 改成 no,PubkeyAuthentication 改成 yes,PermitRootLogin 改成 no。改完重启 sshd,再用密码试登,应该直接被拒绝才算生效。另外 ~/.ssh 权限 700,authorized_keys 权限 600。


二、改默认端口,先放行防火墙

把 sshd_config 里的 Port 改成高位端口,比如 2222。顺序不能反:先在云厂商安全组和服务器防火墙里放行新端口,再改端口、再重启,否则新端口连不上、旧端口又关了,只能走控制台救援。重启后用 ss -tlnp 确认新端口在监听,再用新端口登录验证。


三、装 fail2ban 挡爆破

即使改了端口和密钥,也不妨碍再加一层自动封禁:apt install fail2ban。Debian 自带的 sshd 监狱默认就是开的,重点是在 jail.local 里调阈值,我用的是 10 分钟内失败 5 次就封 1 小时。改完重启服务,用 fail2ban-client status sshd 看封禁数。


四、定期检查登录日志

加固不是一劳永逸,每周花几分钟看看就行:last 看成功登录,lastb 看失败登录,journalctl 看 sshd 日志,auth.log 里能快速定位还在尝试的 IP。


五、密钥备份,别把私钥弄丢

密钥登录最大的风险从密码变成了私钥:私钥只放自己电脑,绝不要传到代码仓库或聊天记录里。我把私钥加密备份到离线 U 盘,同时给服务器留一个备用公钥,万一主设备出问题还能登录。


清单:密钥登录、关密码、改端口先放行、fail2ban 封禁、每周看日志、密钥离线备份。按这个顺序做,基本不会把自己锁在门外。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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