侧边栏壁纸
  • 累计撰写 112 篇文章
  • 累计创建 54 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

DD 重装直接配置SSH

FlyingEagle
2026-10-06 / 0 评论 / 0 点赞 / 8 阅读 / 4,677 字

Vultr 一键重装 Debian 13 + SSH Key 实战总结

工具:bin456789/reinstall.sh(12.9k star,开源)+ Vaultwarden

1. 重装时直接加 Key

脚本原生支持 --ssh-key,debian 13 可用,和 --password 互斥,只能二选一。

curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
bash reinstall.sh debian 13 --ssh-key "ssh-ed25519 AAAAC3... vultr-debian13-win"

4种写法都支持,可重复指定加多个:

bash reinstall.sh debian 13 --ssh-key "ssh-ed25519 AAAA..."
bash reinstall.sh debian 13 --ssh-key github:your_username
bash reinstall.sh debian 13 --ssh-key https://example.com/my.pub
bash reinstall.sh debian 13 --ssh-key /root/.ssh/id_ed25519.pub

# 多个 key + 指定用户端口
bash reinstall.sh debian 13 --username root --ssh-port 22 \
  --ssh-key "ssh-ed25519 AAAA... pc1" \
  --ssh-key github:myuser

跑错没重启前可取消:bash reinstall.sh reset

2. 直接加 Key vs 先密码装完再换 Key

结论:直接加 Key 最好。

  • 直接加:全程无密码可爆破,安装时的临时 SSH 也是 Key 验证,最干净。
  • 先密码:密码进 history,安装几分钟暴露密码端口,还容易忘关 PasswordAuthentication yes。

只有 Key 没验证过、又没 VNC 兜底时,才用高强度随机密码过渡。

3. root + Key 够安全吗?

够了。root + ed25519 key-only 暴力破解数学上不可能,只要:

PasswordAuthentication no
PermitRootLogin prohibit-password

用 --ssh-key 装默认就是这个状态。

教程让你用 non-root 防的不是破解,是:

  1. root 用户名全网必扫,换冷门名降噪
  2. 防 rm -rf / 手滑,sudo 多一次确认
  3. 纵深防御:私钥漏了/误开密码登录,多一道提权门槛

个人单机:root+key 继续用。多人/生产:--username deploy + PermitRootLogin no。

4. 脚本本身安全吗?

相对可信,但要懂风险:

  • 开源 5000+ 行,长期维护,Debian 走官方源 deb.debian.org,不是自制包。
  • 风险1:必须 root 跑,会整盘抹盘,操作风险 > 木马风险。
  • 风险2:用了 curl --insecure,+ 别用视频里的 dd --img http://xxx 杂镜像。

只装官方 debian/ubuntu 放心用。

5. 生成 Key:Linux / Win

# Linux
ssh-keygen -t ed25519 -f ~/.ssh/vultr-debian13 -C "vultr-debian13-win"
cat ~/.ssh/vultr-debian13.pub
# Win PowerShell,自带 OpenSSH
mkdir D:\password\ssh-key
ssh-keygen -t ed25519 -f D:\password\ssh-key\vultr-debian13 -C "vultr-debian13-win"

# 得到 2 个文件:
# vultr-debian13      私钥,自己留+存Vaultwarden
# vultr-debian13.pub  公钥,给 VPS

type D:\password\ssh-key\vultr-debian13.pub
  • key生成在默认用户文档并显示key脚本, 命令当中";" 为win分割符号,和linux里面的"&&"区别是不管上一条是不是成功都会继续跑下一条
ssh-keygen -t ed25519 -f $env:USERPROFILE\.ssh\vultr-debian13 -C "vultr-debian13"; type $env:USERPROFILE\.ssh\vultr-debian13.pub

参数解释:

  • -t = type 算法,ed25519 首选,又短又快。老机器才用 ssh-keygen -t rsa -b 4096
  • -f = 存到哪里,不指定默认 ~/.ssh/id_ed25519,多台机器必须用 -f 改名,否则覆盖
  • -C = comment 注释,不改文件名,只显示在 .pub 末尾,方便认:
    ssh-ed25519 AAAAC3... vultr-debian13-win
  • type = Win 版 cat,显示文件内容
  • ; = 不管成功失败都跑下一条,5.1/7 通用;&& 是成功才跑下一条,仅 PS7+

6. 默认路径 vs 自定义路径

放默认路径 C:\Users\你\.ssh\id_ed25519,ssh 会自动试,不用加参数:

ssh root@VultrIP

放 D:\password\ssh-key\... 每次都要 -i:

ssh -i D:\password\ssh-key\vultr-debian13 root@VultrIP

一劳永逸写 config:

notepad $env:USERPROFILE\.ssh\config
Host vultr
  HostName 你的VultrIP
  User root
  IdentityFile D:/password/ssh-key/vultr-debian13

以后 ssh vultr 就行。

7. Vaultwarden 存 Key + 能否免文件登录

Vaultwarden 本体只管存。能“免文件”的是电脑上的 Bitwarden Desktop -> 设置 -> 启用 SSH Agent,解锁后接管 OpenSSH agent,ssh/git 自动拿钥匙签名。

要求:服务端够新(有 SSH Key 条目类型)、客户端够新、只支持 ed25519 OpenSSH 格式,PuTTY 不行。

求稳就:文件放 D 盘 + 私钥全文(含 BEGIN/END)备份到 Vaultwarden SSH Key / Secure Note,外加 ssh-keygen -lf 指纹備查。

8. 给 AI 操作 VPS 的安全流程(别直接给 root key)

原则:一 AI 一 key、一事一权,做完即收回。

1. 建低权用户,不给 root

adduser aiops
usermod -aG sudo aiops
mkdir -p /home/aiops/.ssh && chmod 700 /home/aiops/.ssh

2. 单独给 AI 生成一把,用完就废

# 你本机跑,和你的 vultr-debian13 分开
ssh-keygen -t ed25519 -f ~/.ssh/ai-deploy -C "ai-temp-2026-10"
cat ~/.ssh/ai-deploy.pub
# 放到 VPS 的 aiops 用户下,不是 root 下
echo "ssh-ed25519 AAAAC3... ai-temp-2026-10" > /home/aiops/.ssh/authorized_keys
chown -R aiops:aiops /home/aiops/.ssh && chmod 600 /home/aiops/.ssh/authorized_keys

3. AI 侧这样连

ssh -i ~/.ssh/ai-deploy aiops@你的VultrIP
# 或 config
Host vps-ai
  HostName 你的VultrIP
  User aiops
  IdentityFile ~/.ssh/ai-deploy

4. 限制一下更稳(可选但推荐)

  • Vultr 防火墙:22 只放你 + AI 出口 IP
  • 别给 PermitRootLogin yes,AI 全程 aiops + sudo,要 root 也是 sudo -i 可审计
  • 重要站先快照:Vultr Snapshot 一键

5. 完工立刻回收

# 从 VPS 上删掉那一行即失联,不影响你自己的 key
sed -i '/ai-temp-2026-10/d' /home/aiops/.ssh/authorized_keys
# 人都不要了就连用户一起删
deluser --remove-home aiops
rm ~/.ssh/ai-deploy ~/.ssh/ai-deploy.pub

记住:你的 vultr-debian13 私钥永远只在你电脑 + Vaultwarden,AI 用的永远是临时 ai-deploy。

9. 锁死自救:Permission denied / 进不去怎么办

先别慌,90% 是这 3 个:公钥贴错、权限太开、改完没 reload。开新窗口别关旧窗口再修。

1. 先看详细报错

# Linux / Win PowerShell 通用
ssh -v -i ~/.ssh/vultr-debian13 root@你的VultrIP

看最后几行:

  • no such identity = -i 路径写错了
  • UNPROTECTED PRIVATE KEY FILE = 私钥权限太开
  • Permission denied (publickey) = 服务端没认出你的公钥,往下查

2. 权限速查表(服务端 + 客户端都要对)

# 服务端 VPS 上
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R root:root ~/.ssh
# 公钥必须一行一个,开头必须是 ssh-ed25519 / ssh-rsa,末尾注释可有可无
cat ~/.ssh/authorized_keys
# 客户端 Linux
chmod 600 ~/.ssh/vultr-debian13
# 客户端 Win
icacls $env:USERPROFILE\.ssh\vultr-debian13 /inheritance:r /grant:r "$env:USERNAME:F"

3. 真锁外面了:Vultr VNC 救

  1. Vultr 后台 -> Instance -> View Console,进 VNC 登录 root
  2. 查 key 是否断行/多空格:
cat -A ~/.ssh/authorized_keys
# 正常是一行,以 ssh-ed25519 开头,结尾是 $,不能中间换行
  1. 查服务端生效配置:
sshd -T | grep -Ei "passwordauth|permitroot|pubkeyauth"
# 要看到 passwordauthentication no / pubkeyauthentication yes
systemctl reload sshd
  1. 加个临时后门测完即删(有 VNC 才用):
echo "ssh-ed25519 AAAAC3... 备用电脑" >> ~/.ssh/authorized_keys

4. 保命习惯

  • 改 sshd_config 前先备份:cp /etc/ssh/sshd_config.d/99-secure.conf /root/
  • 永远新开一个窗口试登,能进再关旧窗口
  • 私钥丢了 = 换锁:把 authorized_keys 里那行删了,重新 ssh-keygen -f 一把新的贴上去
0

评论区