Claude Code Remote Control : Claude Code 24h/24 sur un VPS, piloté depuis votre téléphone
Votre ordinateur s'endort, vos sessions Claude Code aussi. Faites-les tourner sur un VPS, pilotez-les depuis votre téléphone et fermez le serveur aux pirates.
- Remote Control relie l'application Claude de votre téléphone à une session Claude Code. Sur un VPS, un serveur loué toujours allumé, la session continue quand votre ordinateur dort.
- Remote Control n'ouvre aucun port : il ne reste à fermer que SSH et vos conteneurs Docker.
- Il faut un abonnement Pro, Max, Team ou Enterprise. Une clé API ne suffit pas.
Vous lancez une tâche longue dans Claude Code, vous fermez l'ordinateur, et tout s'arrête. Voici mon installation de tous les jours avec Claude Code Remote Control : un VPS, une dizaine de sessions en arrière-plan, et l'application Claude dans la poche. Comptez une heure.
- Un abonnement Claude Pro, Max, Team ou Enterprise.
- Un VPS sous Ubuntu 20.04+ ou Debian 10+, avec au moins 4 Go de mémoire. Le mien : 8 cœurs, 23 Go, 33 € par mois chez Contabo.
- L'application Claude sur votre téléphone.
- Savoir copier une commande dans un terminal. Chaque commande est expliquée.
Pourquoi faire tourner Claude Code sur un VPS ?
Une session Claude Code vit sur la machine qui la lance. Sur un ordinateur portable, elle s'arrête quand il s'éteint. Sur un VPS, un ordinateur loué dans un centre de données et allumé en permanence, elle travaille la nuit, et vous la retrouvez le matin sur votre téléphone.
Sans serveur du tout, les sessions cloud de claude.ai/code (s'ouvre dans un nouvel onglet) tournent chez Anthropic. Le VPS sert à garder vos outils et vos fichiers pour un prix fixe.
| Où tourne la session | Quand elle s'arrête | |
|---|---|---|
| Votre ordinateur + Remote Control | Sur votre ordinateur | Quand il s'éteint |
| Un VPS + Remote Control | Sur votre serveur loué | Au redémarrage du serveur |
| Sessions cloud sur claude.ai/code | Chez Anthropic | À la fin de la tâche |
Qu'est-ce que Claude Code Remote Control ?
Claude Code Remote Control relie claude.ai/code ou l'application Claude pour iOS et Android à une session qui tourne sur votre machine. Le travail reste sur la machine, avec vos fichiers et vos outils. Le téléphone sert de fenêtre et de clavier, synchronisés avec le terminal.
La session n'envoie que des requêtes sortantes vers Anthropic et n'ouvre aucun port, ces portes numérotées par lesquelles un serveur accepte des connexions. Tant qu'elle est connectée, la conversation est enregistrée chez Anthropic pour rester synchronisée. Avec /config, elle peut aussi vous notifier quand une tâche finit ou attend votre décision.
Comment installer Claude Code sur un VPS ?
Connectez-vous au VPS en SSH, la connexion sécurisée à un serveur depuis votre terminal. Lancez la commande d'installation d'Anthropic, puis tapez claude. Le serveur n'a pas de navigateur : Claude Code affiche un lien à ouvrir sur votre ordinateur, puis vous collez le code obtenu dans le terminal.
Connectez-vous au serveur
Si SSH tourne sur un autre port, ajoutez -p et le numéro.
ssh vous@adresse-du-vpsRésultat attendu : l'invite du serveur, par exemple vous@vps:~$
Installez Claude Code
curl -fsSL https://claude.ai/install.sh | bash claude --versionRésultat attendu : un numéro de version, par exemple 2.1.309 (Claude Code)
Connectez votre compte
Lancez claude, appuyez sur c pour copier le lien, ouvrez-le sur votre ordinateur, puis collez le code à l'invite « Paste code here if prompted ».
claudeRésultat attendu : Login successful
Vérifiez : /status affiche votre compte et votre offre.
N'utilisez pas `claude setup-token` : selon la documentation, ce jeton ne permet pas d'ouvrir de session Remote Control.
Comment piloter Claude Code depuis votre téléphone ?
Sur le VPS, allez dans le dossier du projet et lancez claude remote-control. Répondez oui aux deux confirmations, puis appuyez sur la barre d'espace pour afficher un QR code. Scannez-le avec votre téléphone : la session s'ouvre dans l'application Claude. Elle apparaît aussi dans la liste de claude.ai/code.
Lancez le serveur Remote Control
cd ~/mon-projet claude remote-controlRésultat attendu : « Trust <dossier>? [y/N] », puis « Enable Remote Control? (y/n) » la première fois. Répondez y.
Ouvrez la session sur le téléphone
Appuyez sur la barre d'espace et scannez le QR code.
Vérifiez : écrivez « liste les fichiers du dossier » sur le téléphone ; le terminal du VPS montre la même conversation.
Ce mode accepte 32 sessions à la fois par défaut, toutes dans le même dossier. Pour une copie de travail git par session, ajoutez --spawn worktree.
Comment garder Claude Code allumé 24h/24 ?
Une session Remote Control vit tant que son processus claude tourne : fermez la connexion SSH qui l'a lancée, elle s'arrête. Lancez-la donc dans tmux, qui garde un terminal ouvert après votre départ. Pour les autres tâches, claude --bg ouvre une session en arrière-plan qui survit à la déconnexion.
Ouvrez une session tmux et lancez Remote Control
tmux new -s claude claude remote-controlRésultat attendu : le lien de session et le QR code.
Détachez-vous
Appuyez sur Ctrl+B, puis sur D. Vous pouvez fermer SSH.
Vérifiez : la session répond toujours depuis votre téléphone.
Revenez plus tard
tmux attach -t claude
Pour les tâches que je lance moi-même sur le serveur, j'utilise claude --bg. Un superviseur les fait tourner sans terminal : au moment où j'écris, il tourne depuis 24 heures avec 10 sessions.
Lancez une tâche en arrière-plan
claude --bg "corrige le test qui échoue dans le dossier billing"Résultat attendu : un identifiant court.
Suivez vos sessions
claude agentsRésultat attendu : les sessions en cours, en attente de réponse ou terminées.
Trois limites :
- Un redémarrage du serveur arrête tmux et les sessions en arrière-plan. Relancez-les.
- Sans réseau pendant environ 10 minutes, claude remote-control s'arrête.
- Une session s'arrête quand votre connexion au compte expire. Au message « Your login expires in 3 days », lancez /login.
Comment fermer votre VPS aux pirates ?
Remote Control n'a besoin d'aucun port ouvert, donc fermez le reste. Connectez-vous avec une clé SSH, jamais un mot de passe. Réservez SSH à un réseau privé comme Tailscale. Et vérifiez Docker : un conteneur publié sur toutes les adresses passe à travers le pare-feu ufw.
Je l'ai appris à mes dépens. En septembre 2026, sur ce VPS, RabbitMQ (une file de messages) et KeyDB (une base en mémoire, sans mot de passe) tournaient dans Docker. ufw bloquait tout par défaut, et pourtant les deux répondaient depuis Internet. Un inconnu a créé dans RabbitMQ deux comptes administrateur, « miner » et « exploit ». Aucun programme de minage sur le serveur, mais la porte était ouverte depuis deux semaines.
La cause : Docker ajoute ses propres règles réseau, qui passent avant celles d'ufw. Le correctif : publier chaque port sur 127.0.0.1, l'adresse que seule la machine peut joindre.
services:
keydb:
ports: !override
- "127.0.0.1:6379:6379"
rabbitmq:
ports: !override
- "127.0.0.1:5672:5672"
- "127.0.0.1:15672:15672"Sans terminal, commencez par le pare-feu de votre hébergeur, dans son espace client : bloquez tout en entrée sauf SSH. Il filtre avant votre serveur, Docker ne peut donc pas le contourner.
Interdisez la connexion par mot de passe
Dans /etc/ssh/sshd_config, mettez PasswordAuthentication no et PermitRootLogin no. Gardez votre session ouverte et testez dans un second terminal.
sudo systemctl restart sshVérifiez : ssh -o PubkeyAuthentication=no vous@adresse-du-vps est refusé.
Installez Tailscale
Tailscale crée un réseau privé entre vos appareils. Installez-le sur le VPS et sur votre ordinateur.
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale upRésultat attendu : le VPS apparaît dans vos appareils Tailscale.
Réservez SSH à Tailscale
Autorisez SSH sur tailscale0 (remplacez 22 par votre port), puis supprimez la règle qui l'ouvrait à Internet.
sudo ufw allow in on tailscale0 to any port 22 proto tcpVérifiez : ssh fonctionne via Tailscale et échoue depuis un autre réseau.
Republiez les conteneurs sur 127.0.0.1
Ajoutez le fichier ci-dessus, puis recréez les conteneurs.
docker compose up -d --force-recreate ss -tlnVérifiez : vos ports apparaissent derrière 127.0.0.1, pas 0.0.0.0.
Testez depuis l'extérieur
Depuis une machine hors Tailscale :
nc -zv adresse-du-vps 6379Résultat attendu : la connexion échoue.
Sur mon VPS, SSH écoute sur le port 2222. Changer de port ne protège pas : cela réduit seulement le bruit des robots qui essaient le 22.
Comment limiter ce que Claude peut casser sur le serveur ?
Faites tourner Claude Code sous un utilisateur sans droit administrateur, ou avec des droits limités à quelques commandes. Ne collez jamais de mot de passe dans la conversation. Et gardez pour un humain la fusion du code et tout ce qui touche à la production.
J'ai deux utilisateurs sur le VPS, dont un sans sudo. Pour modifier le pare-feu, l'agent a reçu un sudo limité à iptables, le temps de l'opération. Mes agents n'ont aucun jeton GitHub : un programme séparé garde la clé et ouvre les pull requests, et je fusionne moi-même.
Votre connexion Claude est enregistrée dans ~/.claude/.credentials.json. Qui entre dans votre compte Linux utilise votre abonnement : raison de plus pour verrouiller SSH.
Pourquoi votre limite hebdomadaire fond plus vite ?
Chaque session en arrière-plan consomme votre quota de son côté, et une longue conversation coûte plus cher à chaque message, car Claude relit tout. Sur mon VPS, 81 % de la consommation venait de conversations de plus de 200 000 tokens, l'unité de texte que Claude lit, environ trois quarts de mot.
Une seule session ouverte douze jours, qui coordonnait 94 sous-agents, a pris 61 % d'une semaine de quota. Depuis :
- une session neuve par tâche ;
- au plus deux sessions qui compilent ou testent en même temps sur 8 cœurs et 23 Go. À trois, les tests échouaient faute de mémoire.
Et OpenClaw ou Hermes sur le même VPS ?
Les mêmes règles valent pour tout agent IA qui tourne en continu, y compris OpenClaw et Hermes Agent de Nous Research. L'agent garde vos clés et lance des commandes : donnez-lui un utilisateur à part, publiez ses services Docker sur 127.0.0.1, et réservez l'accès au serveur à votre réseau privé.
L'installation d'OpenClaw sur un VPS fera l'objet d'un article dédié.
Erreurs fréquentes
« Workspace not trusted » au lancement de claude remote-control
Cause : le dossier n'a jamais été approuvé. Les sessions en arrière-plan sautent ce contrôle, donc seul Remote Control refuse.
Solution : lancez claude une fois dans ce dossier et acceptez. Dans votre dossier personnel, la question revient à chaque fois.
La connexion SSH expire sans message
Cause : SSH écoute sur un autre port, ou fail2ban a banni votre adresse après trop de tentatives.
Solution : ss -tln sur le serveur montre le bon port. Si vous êtes banni, attendez ou passez par Tailscale. Ne relancez pas ssh en boucle pendant un redémarrage : c'est ce qui m'a fait bannir.
Un port Docker reste ouvert malgré ufw
Cause : les règles de Docker passent avant celles d'ufw.
Solution : publiez le port sur 127.0.0.1. Dans la chaîne DOCKER-USER, visez le port du conteneur : chez moi, un service publié sur 8083 écoutait sur 8080.
Les règles du pare-feu disparaissent au redémarrage
Cause : une règle iptables vit en mémoire seulement.
Solution : passez par ufw, qui enregistre ses règles, ou par /etc/ufw/after.rules.
Remote Control est indisponible
Cause : vous utilisez une clé API, ou ANTHROPIC_BASE_URL pointe ailleurs qu'Anthropic.
Solution : connectez-vous avec votre compte claude.ai via /login et retirez la variable.
Questions fréquentes
Faut-il un abonnement Max pour Remote Control ?
Non. Pro suffit. Sur Team et Enterprise, un propriétaire du compte doit d'abord activer Remote Control.
Mon code passe-t-il par les serveurs d'Anthropic ?
Le code s'exécute sur votre VPS. Mais la conversation, avec les actions des outils, est enregistrée chez Anthropic tant que Remote Control est connecté.
Que deviennent mes sessions si le VPS redémarre ?
Elles s'arrêtent. Les conversations en arrière-plan restent sur le disque et reprennent quand vous les rouvrez. Remote Control doit être relancé dans tmux.
- Anthropic, documentation Claude Code, « Remote Control », consultée le 24 octobre 2026
- Anthropic, documentation Claude Code, « Advanced setup », consultée le 24 octobre 2026
- Anthropic, documentation Claude Code, « Authentication », consultée le 24 octobre 2026
- Anthropic, documentation Claude Code, « Agent view », consultée le 24 octobre 2026
- Docker, documentation « Packet filtering and firewalls »
- Tailscale, documentation « Tailscale SSH »
- tmux, dépôt GitHub
- fail2ban, dépôt GitHub
- OpenClaw, dépôt GitHub
- Hermes Agent, Nous Research, dépôt GitHub
Pour aller plus loin
- Skills Claude : les skills que j'utilise chaque jour, pour donner vos propres consignes à vos sessions.