Die KI es Machen Lassen

Ich brauchte einen Dev-Server: VM mit SSH-Zugang und installierten Dev-Tools. Ich beschrieb Claude Code, was ich wollte, und liess es das Setup erledigen.

Der Prompt

Ich bat um eine Vultr VM mit 8 Kernen und 32GB RAM, nur uber Tailscale erreichbar, mit persistenten Sitzungen, die Netzwerkunterbrechungen uberleben.

Was Claude Code Baute

1. Provisionierte die VM uber Vultr API

Es erstellte eine 8-Kern/32GB Ubuntu-Instanz, wartete auf die IP und SSH’te dann als root ein.

2. Hartete SSH

Port 49152                    # Zufalliger hoher Port
PermitRootLogin no
PasswordAuthentication no
ListenAddress 100.x.x.x       # Nur Tailscale-Interface

Nur schlusselbasierte Auth, nur auf dem Tailscale-Interface horend.

3. Richtete drei Firewall-Schichten ein

4. Installierte Tailscale mit aktiviertem SSH

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

Dies erstellt einen zweiten SSH-Pfad uber Tailscales eingebauten SSH-Server, unabhangig von OpenSSH.

5. Installierte den Dev-Stack

Node.js (uber nvm), Python (uber pyenv), Docker und gangige Tools. Konfigurierte Docker, um ohne sudo zu laufen.

6. Richtete persistente Sitzungen mit tmux ein

Ein Startskript, das sich automatisch wieder mit einer bestehenden Sitzung verbindet, sodass Netzwerkunterbrechungen laufende Prozesse nicht toten.

7. Erstellte lokale Verwaltungsskripte

dev-start und dev-stop Skripte auf meinem Laptop, die die VM uber die Vultr API hoch- und herunterfahren.

Die Aussperrung

Nach Abschluss verifizierte Claude Code, dass der Root-Login deaktiviert war, indem es versuchte, sich als root per SSH anzumelden. Der Login schlug fehl. fail2ban bemerkte die fehlgeschlagenen Versuche und sperrte uns.

Claude Code hatte Tailscale SSH als sekundaren Pfad eingerichtet. Es nutzte tailscale ssh, um wieder reinzukommen, und fuhrte aus:

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

Setup

Sie benotigen:

Speichern Sie API-Schlussel als Umgebungsvariablen und referenzieren Sie sie nach Namen (z.B. $VULTR_API_KEY), damit Secrets nicht im Gesprach erscheinen.

Beispiel-Prompt:

Erstelle eine 8-Kern-VM auf Vultr, sperre sie ab, sodass sie nur uber Tailscale erreichbar ist, richte Node/Python/Docker ein, und gib mir Skripte, um sie zu starten und zu stoppen.