1
在自己电脑上生成密钥
Windows 10/11 的 PowerShell 和 macOS 的终端都自带 SSH 工具。执行下面这行,一路回车即可(中间可以设一个密钥密码,也可以留空):
ssh-keygen -t ed25519
会生成两个文件:id_ed25519 是私钥,留在自己电脑上;id_ed25519.pub 是公钥,下一步放到服务器上。查看公钥内容:
cat ~/.ssh/id_ed25519.pub # macOS
type $env:USERPROFILE\.ssh\id_ed25519.pub # Windows PowerShell
注意私钥 id_ed25519(不带 .pub 的那个)等于服务器的钥匙,不要发给任何人,也不要上传到网盘或群里。
2
把公钥放到服务器上
macOS 一行命令就能放好,把 IP 和端口换成你的:
ssh-copy-id -p 端口 root@你的IP
Windows 没有 ssh-copy-id,在 PowerShell 里执行这一行,输入一次 root 密码即可:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 端口 root@你的IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
放好以后新开一个终端窗口执行 ssh -p 端口 root@你的IP,不再问 root 密码就成功了(设了密钥密码的会问密钥密码)。
另外建议把公钥也保存到 KiwiVM 的 SSH keys 页,以后重装系统会自动写入:
KiwiVM:SSH keys
- 1把公钥内容粘到这里
- 2点
Save SSH keys 保存
正常结果保存后页面显示 Great Success!,并说明之后重装系统时这些公钥会自动加到 /root/.ssh/authorized_keys。当前系统用上面的命令放好即可。
3
关闭密码登录
本站测试机重装系统后开机不到 1 分钟,日志里就出现了第一次 root 密码猜测,所以这一步越早做越好。确认密钥能登录后,再关掉密码登录。保持当前窗口不要关,登录服务器执行:
cat > /etc/ssh/sshd_config.d/00-key-only.conf <<'EOF'
PasswordAuthentication no
PermitRootLogin prohibit-password
EOF
sshd -t
sshd -t 没有任何输出说明配置没写错,再重新加载 SSH 服务:
systemctl reload sshd # AlmaLinux / Rocky / CentOS
systemctl reload ssh # Debian / Ubuntu
检查是否生效:
sshd -T | grep -E "passwordauthentication|permitrootlogin"
正常结果显示 passwordauthentication no 和 permitrootlogin without-password 就生效了。新开窗口用密钥登录一次,没问题再关掉旧窗口。
文件名用 00 开头,是因为 SSH 配置以最先读到的值为准,要排在系统自带的配置文件前面(本站测试机的 AlmaLinux 9 自带 50-redhat.conf)。执行 grep -n Include /etc/ssh/sshd_config 没有任何输出的老系统(例如 CentOS 7),直接改 /etc/ssh/sshd_config 里的 PasswordAuthentication 为 no。
注意万一把自己锁在外面:用 KiwiVM 左侧 Root shell – basic 网页终端执行 rm /etc/ssh/sshd_config.d/00-key-only.conf,再重新加载 SSH 服务即可。
4
KiwiVM 开启两步验证
服务器之外,KiwiVM 面板本身也要保护。左侧 Security & Records 下点 Two-factor authentication,用手机上的验证器 App 扫码开启;也可以用 Passkeys and Security keys 绑定通行密钥或硬件密钥。
注意KiwiVM 页面明确提醒:手机和备用码都丢了,唯一的重置办法是彻底清空这台 VPS,数据全部删除。开启时一定把备用码另外保存好。
5
定期看审计日志
左侧 Audit log 记录每次登录 KiwiVM 和通过 API 执行的操作:
KiwiVM:Audit log(时间、来源 IP、邮箱已打码)
- 1每条记录有时间、来源 IP 和操作内容
Billing platform requested a single-use login token 是从客户区点 Open KiwiVM 时自动产生的,属于正常记录。看到不认识的 IP 登录,马上改客户区密码,并按下一步重置 API 密钥。
6
保管好 API 密钥
KiwiVM 左侧 API 页的密钥可以直接重装、关机、在服务器上执行命令。不要发给别人,不要贴到群里或截图里。
KiwiVM:API(VEID 已打码)
- 1怀疑密钥泄露,点
Reset API Key 重新生成密钥