Skip to content
Velo.x Logo
Go back

[安全] 终极防盗门:配置 SSH 密钥登录并禁用密码

Edit page

改了端口、装了 Fail2Ban 只是增加了破解难度,而 SSH 密钥登录 才是真正把“门锁”焊死。

它的原理是:在你的电脑生成一对“钥匙”(公钥和私钥),把公钥丢给 VPS。以后登录时,VPS 核对你手里的私钥,对上了就直接放行,根本不需要输入密码。

第一步:在本地电脑生成密钥

这一步在你自己的电脑(Windows CMD 或 Mac 终端)上操作,不要连 VPS

  1. 打开 CMD (Windows) 或 终端 (Mac)。

  2. 输入生成命令:

    ssh-keygen -t ed25519 -C "my-vps-key"
  3. 一路按回车(不需要设密码,除非你想要双重保险)。

  4. 生成的密钥会保存在你的用户目录下(通常是 .ssh 文件夹)。


第二步:把“公钥”装进 VPS

我们需要把刚才生成的 公钥 (Public Key) 内容复制到 VPS 上。

  1. 查看公钥内容:

    • Windows CMD 输入: type %userprofile%\.ssh\id_ed25519.pub
    • Mac/Linux 输入: cat ~/.ssh/id_ed25519.pub

    (你会看到以 ssh-ed25519 开头的一长串字符,把它完整复制下来。)

  2. 粘贴到 VPS:

    • 连接你的 VPS:ssh root@你的IP -p 56789 (注意替换端口)
    • 创建存放目录(如果没有):
      mkdir -p ~/.ssh && chmod 700 ~/.ssh
    • 编辑授权文件:
      nano ~/.ssh/authorized_keys
    • 操作: 在编辑器里粘贴你刚才复制的那串公钥。
    • 保存:Ctrl + O 保存,Ctrl + X 退出。
    • 赋予正确权限(这一步极其重要,权限不对登录会失败):
      chmod 600 ~/.ssh/authorized_keys

第三步:验证密钥登录 (关键!)

🚨 警告:千万别急着关窗口! 先验证密钥好不好用,否则一旦失败你就把自己锁在外面了。

  1. 保持当前的 VPS 连接不要断开(留一条后路)。
  2. 新开一个本地 CMD 窗口。
  3. 输入登录命令:
    ssh root@你的IP -p 56789
  4. 判定标准: 如果没有让你输密码直接进了系统,说明密钥配置成功!🎉

第四步:禁用密码登录 (关门)

确认密钥能用后,我们把“密码登录”这个功能彻底关掉。以后谁想试密码都试不了。

  1. 在 VPS 里编辑配置文件:

    nano /etc/ssh/sshd_config
  2. 找到以下两项,按如下修改(找不到就手动添加在最后):

    # 禁用密码验证
    PasswordAuthentication no
    # 启用密钥验证
    PubkeyAuthentication yes
  3. 保存退出 (Ctrl + O, Ctrl + X)。

  4. 重启 SSH 服务让配置生效:

    systemctl restart sshd

📖 博客补充篇:VPS 重生后,如何快速“召回”老密钥?

  1. 前言:重装不是终结,而是纯净的开始 在之前的文章中,我们学会了如何生成并配置 SSH 密钥。但当你点击了 RackNerd 后台那个绿色的 “Reinstall”(重新安装)按钮后,原本服务器里的密钥会被彻底抹除。

别担心,只要你本地的“金钥匙”还在,10 秒钟就能满血复活。

  1. 第一步:定位你本地的“金钥匙” 在你电脑的 .ssh 目录下(通常是 C:\Users\用户名.ssh),你会看到那个后缀名为 .pub 的文件。例如最先进的 id_ed25519.pub。

极客提醒:虽然 Windows 可能会把它识别成“Microsoft Publisher”文件,别管它,直接用记事本打开。

  1. 第二步:暴力“焊入”新系统 当你用重装后获得的新密码连入崭新的 Ubuntu 22.04 后,直接执行以下这行“三合一”绝杀指令:
# 一键创建目录、写入密钥、锁定权限
mkdir -p ~/.ssh && echo "粘贴你 id_ed25519.pub 里的全部内容" >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
  1. 第三步:验证与绝杀(禁用密码登录) 验证:开个新窗口尝试 ssh root@你的IP,你会发现不再弹密码框,直接秒进!

绝杀:确定密钥生效后,记得回到上一篇教程,将 PasswordAuthentication 修改为 no,彻底封死黑客爆破的可能。


总结

从此以后,这台 VPS 只认你电脑里的那把“钥匙”。无论你是从 Debian 换到 Ubuntu,还是买了第 100 台新 VPS,只要这一行指令,你就是这台机器永恒的主人。

备忘录: 请务必备份好你本地电脑的 .ssh 文件夹!如果电脑丢了或者重装系统,没有私钥你也进不去 VPS 了(那时候只能去服务商后台用 VNC 救急)。


💡 提示: > 本文首发于我的个人博客 Velo.x 的极客空间。我在那里存放了更完整的 拒绝 22 号门:修改 SSH 默认端口防止扫描系列教程,排版更精美,更新也更及时,欢迎来踩踩!🚀



Edit page
Share this post on:

Previous Post
配置 Fail2Ban 防止 SSH 暴力破解
Next Post
[安全] 拒绝 22 号门:修改 SSH 默认端口防止扫描