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
- UFW: Alle eingehenden verweigern ausser Tailscale-Subnetz
- fail2ban: IPs nach fehlgeschlagenen Login-Versuchen automatisch sperren
- Vultr-Firewall: Alles auf Hypervisor-Ebene blockieren
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:
- Claude Code (oder ahnliche KI mit Tool-Nutzung)
- Ein Cloud-Provider-Konto (Vultr, DigitalOcean, AWS, etc.)
- Ein Tailscale-Konto
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.