SSH 免密登录与服务器安全加固实战

举报
yd_282444815 发表于 2026/10/29 09:03:21 2026/10/29
【摘要】 服务器刚开通时,很多人习惯用密码登录 SSH。时间一长,不仅每次输入麻烦,更重要的是密码一旦泄露或被暴力破解,整台机器的数据都岌岌可危。本文分享一套实用的组合拳:先配置 SSH 密钥免密登录,再做几项关键的安全加固,让服务器既好用又安全。 一、生成密钥对在本地电脑上执行:ssh-keygen -t ed25519 -C "your_email@example.com"一路回车即可,会在 ~/...

服务器刚开通时,很多人习惯用密码登录 SSH。时间一长,不仅每次输入麻烦,更重要的是密码一旦泄露或被暴力破解,整台机器的数据都岌岌可危。本文分享一套实用的组合拳:先配置 SSH 密钥免密登录,再做几项关键的安全加固,让服务器既好用又安全。

一、生成密钥对

在本地电脑上执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可,会在 ~/.ssh/ 目录下生成 id_ed25519(私钥)和 id_ed25519.pub(公钥)。私钥相当于你家的钥匙,绝不能外传;公钥则可以放心放到服务器上。

二、把公钥部署到服务器

最省事的办法是:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@服务器IP

这条命令会自动把公钥追加到服务器 ~/.ssh/authorized_keys 文件中,并设置好权限。之后再执行 ssh user@服务器IP,就能直接登录,无需输入密码了。

三、禁用密码登录,堵住暴力破解

编辑服务器上的 /etc/ssh/sshd_config,找到并修改以下几项:

PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes

修改后重启 sshd 服务:

sudo systemctl restart sshd

这样一来,攻击者即使知道你的用户名,没有私钥也寸步难行。注意:修改之前务必确认密钥登录已经可用,否则可能把自己锁在门外。

四、更换默认端口,缩小攻击面

把默认的 22 端口改成一个不常用的高位端口,例如 22222:

Port 22222

同时建议配合防火墙只放行必要的 IP 段。端口扫描器最爱扫 22 端口,换个端口能挡掉绝大多数自动化攻击脚本。

五、开启 fail2ban 自动封禁

安装 fail2ban,多次输错密码或异常登录的 IP 会被自动拉黑一段时间:

sudo apt install fail2ban
sudo systemctl enable --now fail2ban

它是服务器的“看门狗”,对付暴力破解非常有效。

六、定期检查与备份

  1. 定期查看 /var/log/auth.log,留意异常登录记录;
  2. 私钥做好异地备份,更换电脑时及时在服务器上删除旧公钥;
  3. 重要数据定期做快照备份,有备无患。

小结

密钥登录解决的是“身份可信”问题,禁用密码、更换端口、fail2ban 解决的是“减少攻击面”问题。两者结合,再配合良好的备份习惯,一台云服务器的安全水位就足以应对绝大多数日常威胁。安全没有银弹,但每一步加固都在提高攻击者的成本。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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