Laisser l'IA le Faire
J’avais besoin d’un serveur de developpement : VM avec acces SSH et outils de dev installes. J’ai decrit a Claude Code ce que je voulais et je l’ai laisse gerer la configuration.
Le Prompt
J’ai demande une VM Vultr avec 8 coeurs et 32 Go de RAM, accessible uniquement via Tailscale, avec des sessions persistantes qui survivent aux coupures reseau.
Ce que Claude Code a Construit
1. A provisionne la VM via l’API Vultr
Il a cree une instance 8 coeurs/32 Go Ubuntu, a attendu l’IP, puis s’est connecte en SSH en tant que root.
2. A renforce SSH
Port 49152 # Port eleve aleatoire
PermitRootLogin no
PasswordAuthentication no
ListenAddress 100.x.x.x # Interface Tailscale uniquement
Authentification par cle uniquement, ecoutant uniquement sur l’interface Tailscale.
3. A configure trois couches de pare-feu
- UFW : Refuser tout entrant sauf sous-reseau Tailscale
- fail2ban : Bannir automatiquement les IP apres des tentatives de connexion echouees
- Pare-feu Vultr : Bloquer tout au niveau de l’hyperviseur
4. A installe Tailscale avec SSH active
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --ssh --authkey=$TAILSCALE_KEY
Cela cree un second chemin SSH via le serveur SSH integre de Tailscale, independant d’OpenSSH.
5. A installe la stack de developpement
Node.js (via nvm), Python (via pyenv), Docker et outils courants. A configure Docker pour fonctionner sans sudo.
6. A configure des sessions persistantes avec tmux
Un script de demarrage qui se reconnecte automatiquement a une session existante, pour que les coupures reseau ne tuent pas les processus en cours.
7. A cree des scripts de gestion locaux
Scripts dev-start et dev-stop sur mon laptop qui demarrent et arretent la VM via l’API Vultr.
Le Verrouillage
Apres avoir termine, Claude Code a verifie que la connexion root etait desactivee en essayant de se connecter en SSH en tant que root. La connexion a echoue. fail2ban a remarque les tentatives echouees et nous a bannis.
Claude Code avait configure SSH Tailscale comme chemin secondaire. Il a utilise tailscale ssh pour revenir et a execute :
fail2ban-client set sshd unbanip 100.x.x.x
Configuration
Vous aurez besoin de :
- Claude Code (ou IA similaire avec utilisation d’outils)
- Un compte fournisseur cloud (Vultr, DigitalOcean, AWS, etc.)
- Un compte Tailscale
Stockez les cles API en tant que variables d’environnement et referencez-les par nom (par ex., $VULTR_API_KEY) pour que les secrets n’apparaissent pas dans la conversation.
Exemple de prompt :
Cree une VM a 8 coeurs sur Vultr, verrouille-la pour qu’elle soit accessible uniquement via Tailscale, configure Node/Python/Docker, et donne-moi des scripts pour la demarrer et l’arreter.