大概两个多月前接触 claude 的时候,写了个 skill 让 AI 帮我管一堆 VPS,从初始化到日常排查、装 docker 容器都能甩给它(参考了朋友的 skill,自己再用 claude 改了不少)

AI 已经很强了,为什么还需要 skill 搭配使用?skill 说白了就是把“怎么连、怎么安全操作”这套东西写下来一次,让 AI 以后照着做,而不是每次都重新教它、每次都让它临场发挥。

先说一句:这里把 VPS SSH 初始化(下发公钥、关密码登录、改端口)和日常排查(查爆破、看连接、查进程)都写进了 skill,你可以用它来管理 VPS、做各种需要的操作(支持 Claude Code / Codex / openclaw 等等),以后你说一声它就去办,本地电脑或者 VPS 上跑都行!
image


先说说我为什么要折腾这个。命令行操作对我来说本来就有点复杂,小鸡一多就更不好管了:哪台是哪家的、端口改没改、用的哪把钥匙,全靠脑子记,记不住就得翻配置一行行找。每买一台新的还得重新传公钥、关密码登录、改端口……每次都得重新问 AI 怎么弄,太麻烦,也不够优雅。毕竟每开个新对话,又得重新告诉它用哪把密钥连哪个端口,挺烦的。
不过在现在这个能让 AI 干活的年代,只要利用好、搭配对 skill,就能省下不少时间,于是干脆把这套流程写成一个 skill,喂它一次之后就一直记得操作步骤了。我自己用了两个月,感觉还挺顺手,现在所有小🐥都是用 openclaw 配这个 skill 在管,想着可能对刚入坑的萌新也有帮助,就整理了一下发到 Github 上了:

image
https://github.com/xiao-vvv/ssh-vps-skill


这东西到底是个啥

它不是面板,就是一份说明文档(SKILL.md,专门写给 AI 看的)加两个 bash 脚本,扔进你 AI 的 skills 目录就能用。

用法有两种,看你自己习惯哪种:

  • 交给 AI(推荐):你提需求,AI 照着 SKILL.md 里的步骤去调脚本。比如说一句“把这台加进来再关掉密码登录”,它就自己办了。

  • 自己手动敲(不太推荐):它本质上就是个普通 CLI 工具,不配 AI 也能手动用。

它能干哪些事

  • 所有机器统一一把钥匙,别名记住 IP / 端口 / 用户名,连系统原生的 ssh <别名> 都能直接用

  • 输一次服务商给的密码,自动把公钥下发到远端

  • 关密码登录前会先验证密钥真能登,还会把 KbdInteractiveChallengeResponse 一起关掉(很多“禁了密码还能登”就是漏了这俩),并处理 cloud-init 的配置覆盖,重启前先 sshd -t 测一遍

  • 改 SSH 端口:新旧端口先并存、实测新口通了才切、不通自动回滚

  • 批量看哪台在线、查系统信息

  • 装好之后,AI 还能直接连上去帮你查日志、查连接、查进程、安装docker……


从零开始把一台 VPS 管起来

0. 前期准备

它可以跑在你的本地电脑上(Windows/macOS/Linux),需要 bashpython3openssh(基本都自带),还需要 expect(只有“用密码下发公钥”这一步才用得到):

  • macOS:brew install expect

  • Debian/Ubuntu:apt install -y expect

再装一个你喜欢的 AI agent(Claude Code / Codex / openclaw 都可以)。

1. 安装 skill

一行命令就能装好(默认装到 ~/.claude/skills/ssh-vps-skill,Claude Code 会自动识别,像 openclaw 这类的可以直接把这个丢给它配置):


bash <(curl -sL https://raw.githubusercontent.com/xiao-vvv/ssh-vps-skill/main/install.sh)

也可以手动 clone:


git clone https://github.com/xiao-vvv/ssh-vps-skill.git ~/.claude/skills/ssh-vps-skill

chmod +x ~/.claude/skills/ssh-vps-skill/scripts/*.sh

openclaw / Codex 这类的,把仓库放到它能读到的地方,让它读一下 SKILL.md 就会用了。

2. 生成属于自己的密钥

私钥是你能进所有机器的命根子,可以用 SSH 软件生成,也可以自己用命令生成(脚本不会替你生成):


ssh-keygen -t ed25519 -f ~/.ssh/vps

私钥 ~/.ssh/vps 自己收好,别上传服务器、别发人、别提交 GitHub。公钥 ~/.ssh/vps.pub 随便公开。

3. 把新机器加进来 + 下发公钥

假设服务商给你的是 IP=1.2.3.4root 密码=abcd1234

对 AI 说:

把ip: 1.2.3.4 加进来,别名叫 jp1,root 密码 abcd1234,顺手把公钥下发上去

等效的手动命令:


ssh-vps add jp1 1.2.3.4 --user root --port 22 --password 'abcd1234'

它会把这台机器存成别名 jp1,再自动把公钥追加到远端的 authorized_keys 里。之后系统原生的 ssh jp1 也能直接用了。

4. 确认密钥能登录

对 AI 说:

用密钥登一下 jp1 看看通不通

手动命令:


ssh-vps jp1

能登进去,就说明密钥配好了。这一步很关键,确认能登录之后再往下走。

5. 关闭密码登录

对 AI 说:

jp1 密钥能登了,把密码登录关掉

手动:


ssh-vps lock jp1

这一步会先用密钥试登一次,登不进去就直接拒绝、不会继续动手(所以不容易把自己锁在外面);确认能登录后,再去关掉 PasswordAuthenticationKbdInteractiveAuthenticationChallengeResponseAuthentication,顺带处理 cloud-init 那类配置覆盖问题,重启 sshd 前先用 sshd -t 测一下语法,最后再确认一遍是不是真的关掉了。

6.(可选)修改 SSH 端口

对 AI 说:

把 jp1 的 ssh 端口改掉

手动(默认改到 20266,也能自己指定):


ssh-vps port jp1          # 改到默认 20266

ssh-vps port jp1 2222     # 或者你指定的端口

流程是:先让新旧端口并存一段时间,本地实测新端口能连通了,才切到只用新端口并更新别名;连不通就自动回滚到旧端口。

提醒一个坑:很多 VPS 在服务商面板那边还有一层安全组/防火墙(甲骨文、AWS、部分商家都有这个)。系统里放行了新端口,但服务商那层没放行,一样连不上。改端口之前记得先去服务商后台把新端口放出来。

到这里这台机器就算初始化完了,以后再加机器,重复 3~6 步就行。


我觉得最香的一点:装好之后可以直接“问”服务器

上面说的初始化其实只是开胃菜,真正每天在用的是:装好之后 AI 就相当于有了一双能安全连上我所有机器的手。以前要查点什么都得自己 ssh 上去一条条敲命令,现在直接问就行。

以前嫌麻烦懒得查的东西,现在都能随口丢给它:

  • 现在有没有奇怪的对外连接、可疑进程?

  • 哪个进程把 CPU / 内存吃满了?

  • DMIT这台开了哪些端口?哪些端口在跑流量

  • DMIT品川上的docker容器该更新了吧,帮我更一下

  • 把所有机器的在线状态、系统信息列个表给我看

它自己连上去跑命令,再把结果讲给你听。不管会不会,基本都能甩给它。


昨天有大佬分享过类似的 SSH 管理面板也提过这些,这里还是再解释一下

为什么建议把默认的 22 端口改掉?

22 是默认靶子,机器一开就可能被扫。换个非默认端口能挡掉一大堆这种无脑扫描。但话说清楚:改端口只是“降噪”,不是核心安全手段,真正扛事的还是密钥登录、禁用密码、防火墙这些。

为什么建议禁用 root 的密码登录?

密码要是太弱,可能在别处泄露被拿去撞库,还可能被一直暴力尝试;而 root 是最高权限账号,一旦被猜中,整台机器就归别人了。所以更稳妥的做法是密钥登录 + 关掉密码登录。

为什么说密钥登录更安全?

私钥留在自己电脑上,公钥放服务器,登录靠加密认证而不是输密码。私钥的强度比普通密码高得多,猜不出也爆不开;公钥可以公开,私钥永远不用上传;不同设备可以用不同的密钥,哪台丢了单独移除对应公钥就行。默认用的是 Ed25519,又快又稳。


关于安全性:

  • 代码是开源的,就两个 bash 文件,逻辑不绕弯子,跑之前自己点开扫一眼完全来得及;

  • 它不会在你电脑上存任何密码,私钥永远不会离开本地,更不会上传或者写进仓库;

  • 仓库里不含任何真实的 IP/密码/密钥,你的连接信息只存在你自己电脑的 ~/.ssh/ 目录里。


适合什么人

比较适合:手里小鸡不少、已经在用 AI agent、想顺手让 AI 把 VPS 也管起来的人;以及刚接触、对 SSH 密钥那套还不太熟、想少踩坑的新手。说白了这个 skill 就是图个方便,自用管理 VPS 的!

不太适合:技术大佬,毕竟这只是个小工具,谈不上多高级。


大概就是这些了,本来是纯自用的东西,想着说不定能帮到新人就顺手发出来了。有 bug 或者想加的功能,欢迎来提 issue 或者发 PR。

https://github.com/xiao-vvv/ssh-vps-skill