防止 SSH 爆破:启用密钥登录

前段时间,我发现我的一台服务器被SSH 爆破 10,000 次。这让我意识到使用用户名密码登录方式存在较大的安全隐患。本文将介绍 SSH 爆破攻击的危险,并指导大家如何通过启用密钥登录来保护服务器安全。
ssh爆破记录

什么是 SSH 爆破攻击?

SSH(Secure Shell)是一种常用的远程登录方式,主要用于管理服务器。然而,如果 SSH 使用用户名和密码登录,它很容易成为攻击者的目标。攻击者通常通过“暴力破解”来猜测用户名和密码,试图获取未授权的访问权限。暴力破解会用字典或脚本不断尝试常见的密码组合,一旦成功,攻击者便能完全控制你的服务器。

SSH 爆破攻击的危险性

  1. 资源消耗:爆破攻击会占用服务器的 CPU 和带宽资源,影响正常的服务器运行。
  2. 数据泄露:一旦被爆破成功,攻击者可能窃取敏感数据或安装恶意软件。
  3. 服务中断:攻击者可以通过删除关键文件或修改配置导致服务中断。
  4. 被滥用为跳板:黑客可能利用你的服务器作为跳板,进一步攻击其他系统或进行网络犯罪。

如何启用 SSH 密钥登录?

为防止暴力破解攻击,推荐使用 SSH 密钥登录。密钥登录比密码登录安全得多,因为它使用加密密钥认证,且不容易被破解。

步骤一:生成 SSH 密钥对

在本地计算机上生成 SSH 密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 你可以选择将密钥保存在默认位置(通常是 ~/.ssh/id_rsa),并设置一个密码短语来进一步增强安全性。
  • 生成后,会得到一个私钥文件(id_rsa)和一个公钥文件(id_rsa.pub)。
  • -C参数后面的内容可以用来标识这个密钥的,以便区分不同的密钥

步骤二:将公钥上传到服务器

将生成的公钥上传到目标服务器(使用 user@hostname 替换为你的用户名和主机名):

ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname

如果无法使用 ssh-copy-id,可以手动上传公钥:

cat ~/.ssh/id_rsa.pub | ssh user@hostname 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

步骤三:禁用密码登录

为了确保安全性,建议禁用 SSH 密码登录。登录到服务器后,编辑 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

找到并修改以下选项:

PasswordAuthentication no

确保启用了公钥认证机制,允许使用密钥登陆,即确保配置文件中有以下配置,并且没有被注释掉:

PubkeyAuthentication yes

保存并退出,然后重启 SSH 服务以应用更改:

sudo systemctl restart ssh

其他安全建议

  1. 更改默认 SSH 端口:将 SSH 端口从默认的 22 改为其他端口,可以减少被扫描的概率。
  2. 使用防火墙:配置防火墙规则,只允许可信任的 IP 地址访问 SSH 服务。
  3. 启用 Fail2Ban:Fail2Ban 可以在短时间内禁止多次失败登录尝试的 IP,从而防止暴力破解。

结论

SSH 爆破攻击对服务器安全构成严重威胁,但通过启用 SSH 密钥登录,可以有效防止暴力破解。采用上述安全建议后,你的服务器将更加安全稳定。

END
本文作者: 文章标题:防止 SSH 爆破:启用密钥登录
本文地址:https://www.mokoc.live/archives/52/
版权说明:若无注明,本文皆mokoの小站原创,转载请保留文章出处。
最后修改:2024 年 10 月 10 日
如果觉得我的文章对你有用,请赞赏(扫码有惊喜!!!)