让AI来做

我需要一台开发服务器:带SSH访问和开发工具的VM。我向Claude Code描述了我想要的,让它处理配置。

提示

我要求一台Vultr VM,配置8核和32GB内存,只能通过Tailscale访问,具有能在网络中断后恢复的持久会话。

Claude Code构建的内容

1. 通过Vultr API配置VM

它创建了一个8核/32GB的Ubuntu实例,等待IP可用,然后以root身份SSH连接。

2. 强化SSH

Port 49152                    # 随机高端口
PermitRootLogin no
PasswordAuthentication no
ListenAddress 100.x.x.x       # 仅Tailscale接口

仅基于密钥的认证,仅在Tailscale接口上监听。

3. 设置三层防火墙

4. 安装启用了SSH的Tailscale

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --ssh --authkey=$TAILSCALE_KEY

这通过Tailscale的内置SSH服务器创建了第二条SSH路径,独立于OpenSSH。

5. 安装开发栈

Node.js(通过nvm)、Python(通过pyenv)、Docker和常用工具。配置Docker无需sudo运行。

6. 使用tmux设置持久会话

一个启动脚本,自动重新连接到现有会话,这样网络中断就不会终止正在运行的进程。

7. 创建本地管理脚本

在我的笔记本电脑上创建dev-startdev-stop脚本,通过Vultr API启动和停止VM。

锁定

完成后,Claude Code通过尝试以root身份SSH连接来验证root登录是否已禁用。登录失败。fail2ban注意到失败的尝试并封禁了我们。

Claude Code已将Tailscale SSH设置为备用路径。它使用tailscale ssh重新进入并执行:

fail2ban-client set sshd unbanip 100.x.x.x

配置

你需要:

将API密钥存储为环境变量并按名称引用它们(例如$VULTR_API_KEY),这样机密就不会出现在对话中。

示例提示:

在Vultr上创建一个8核VM,锁定它使其只能通过Tailscale访问,设置Node/Python/Docker,并给我启动和停止它的脚本。