Accueil / Blog / VS Code Remote S
ENGINEERING_BLOG · 2026.09.16

VS Code Remote SSH ne se connecte pas au Mac distant : guide de dépannage 2026

Vous avez déjà obtenu une session SSH dans le terminal, mais VS Code reste bloqué sur la connexion ou l’installation du serveur.

La méthode la plus rapide consiste à vérifier, dans cet ordre, SSH de base, les journaux Remote - SSH, l’authentification, le transfert de ports, VS Code Server, puis les ressources du Mac distant. Une connexion réseau réussie ne signifie pas qu’une session SSH, un tunnel de transfert et un serveur VS Code fonctionnent réellement.

Cette procédure s’adresse aux développeurs Windows ou Linux qui utilisent une chaîne d’outils macOS depuis VS Code, aux ingénieurs DevOps qui maintiennent un Mac partagé et aux responsables de plateforme qui évaluent la récupération d’un nœud distant après redémarrage. Elle ne remplace pas un tutoriel d’installation SSH initiale : elle sert à isoler une panne déjà observée.

SECTION 01 Le diagnostic commence avant VS Code

Oui. Votre première échéance est de déterminer si l’échec apparaît avant l’intervention de l’éditeur. Ouvrez un terminal local et consignez séparément le résultat de la connexion SSH, puis celui de Remote - SSH. Utilisez vos propres valeurs, par exemple <compte>, <hôte>, <clé> et <projet> ; ne copiez pas un chemin de production dans un script de test.

Sur le Mac distant, macOS doit avoir Remote Login activé pour accepter les connexions SSH ou SFTP. La procédure officielle d’Apple précise également quels comptes sont autorisés à se connecter : vérifiez donc le compte sélectionné, et pas seulement l’adresse IP ou le nom DNS. Consultez le guide Apple de configuration de Remote Login avant de modifier le service.

Dans le terminal local, observez au minimum :

  • l’adresse réellement résolue pour <hôte> ;
  • le compte transmis au serveur ;
  • la clé proposée et la réponse d’authentification ;
  • l’empreinte de l’hôte ;
  • la présence d’une invite qui attend un mot de passe ou une phrase secrète.

Le message « hôte joignable » ne prouve pas que le démon SSH accepte votre compte. Inversement, une session SSH fonctionnelle ne prouve pas que Remote - SSH pourra établir les canaux dont VS Code Server a besoin.

Première étape : comparer le client SSH utilisé

VS Code peut appeler un exécutable SSH différent de celui lancé directement dans votre terminal. Dans les journaux Remote - SSH, repérez le chemin du client, le fichier de configuration lu et les options effectivement appliquées. Comparez-les avec la commande détaillée produite par votre terminal.

Contrôlez notamment :

  • le nom de l’hôte défini dans le fichier de configuration ;
  • User et le compte réellement utilisé ;
  • IdentityFile et son chemin absolu ;
  • le port déclaré ;
  • les règles de correspondance qui peuvent remplacer une option plus générale.

La documentation officielle de Remote Development avec SSH décrit le fonctionnement de cette chaîne : VS Code ouvre une connexion SSH, installe ou démarre VS Code Server sur l’hôte distant, puis utilise cette session pour le développement. Cette séquence explique pourquoi un test manuel limité à l’ouverture d’un shell est insuffisant.

Ne désactivez pas la vérification de l’hôte et ne partagez pas une clé privée pour faire disparaître une erreur d’authentification. Vous supprimeriez l’indice qui distingue une mauvaise identité, une empreinte modifiée et une demande interactive restée en attente.

SECTION 02 Pourquoi l’authentification réussit-elle sans ouvrir l’environnement distant ?

Lorsque le terminal fonctionne mais que VS Code s’arrête sur « connexion », le défaut se situe souvent dans la différence entre les deux chemins d’exécution. Un compte peut ouvrir un shell interactif tout en étant incapable de lancer correctement le composant distant, de créer un tunnel ou d’écrire dans son répertoire personnel.

Ouvrez les journaux Remote - SSH et classez l’arrêt selon le dernier événement observable :

  1. le client SSH est lancé, mais une invite attend une réponse ;
  2. l’authentification réussit, puis le canal est fermé ;
  3. le transfert de ports est refusé ;
  4. VS Code Server est téléchargé, installé ou démarré ;
  5. le serveur démarre, mais l’hôte d’extension distant échoue.

Cette classification évite de supprimer un serveur distant alors que le véritable problème est une clé non chargée ou une configuration différente.

Deuxième étape : traiter les demandes interactives

Une phrase secrète de clé, un mot de passe, une confirmation d’empreinte ou une méthode d’authentification supplémentaire peut être visible dans le terminal et invisible dans le flux attendu par VS Code. Si le journal s’interrompt juste après l’ouverture du client, cherchez une demande non satisfaite avant de modifier le Mac.

L’empreinte de l’hôte doit être vérifiée avec une source d’administration fiable. Réinitialiser aveuglément l’entrée connue peut masquer une substitution d’hôte ou une modification du nœud. Gardez une copie de l’ancienne entrée et documentez la raison de son remplacement.

Si vous administrez plusieurs Mac, contrôlez aussi le routage dynamique. La documentation Remote SSH sur les machines attribuées dynamiquement explique pourquoi une connexion réutilisée peut viser un nœud différent de celui attendu. Dans ce cas, une authentification correcte sur une machine ne garantit pas que le serveur distant existe sur la suivante.

SECTION 03 Que signifie un refus du transfert de ports ?

Après l’authentification, VS Code doit encore établir les canaux nécessaires à la communication avec VS Code Server. Un message tel que administratively prohibited, un échec de création de canal ou un conflit de port local indique une autre famille de panne ; il ne faut pas la traiter comme une simple erreur de mot de passe.

Commencez par identifier le sens du refus :

  • refus administratif côté hôte : une politique SSH limite le transfert ;
  • échec du canal : le service demandé ne peut pas être atteint ou lancé ;
  • conflit côté client : un port local ou une autre session utilise déjà la ressource ;
  • incompatibilité de socket : le type de transfert demandé n’est pas autorisé par la configuration.

La procédure officielle de diagnostic du transfert TCP dans Remote SSH indique les paramètres à examiner. Les options AllowTcpForwarding et AllowStreamLocalForwarding doivent être évaluées avec prudence : leur modification peut affecter d’autres utilisateurs, des tâches automatisées ou des connexions d’administration.

Référez-vous à la documentation OpenSSH sshd_config pour interpréter les directives plutôt que d’ajouter une règle trouvée dans un forum. Avant de redémarrer le service SSH, vérifiez que vous disposez d’un accès de secours : console de gestion, compte administrateur distinct ou intervention de l’opérateur. Sinon, une erreur de syntaxe peut transformer un problème Remote - SSH en perte d’accès complète.

Après chaque changement, conduisez trois essais séparés : une session SSH ordinaire, une connexion Remote - SSH et une connexion déjà utilisée par votre automatisation. Corriger l’éditeur tout en cassant un agent d’intégration continue n’est pas une réparation acceptable.

SECTION 04 La réinstallation de VS Code Server

Un blocage sur « Installing VS Code Server » ne fournit pas encore la cause. Il faut distinguer quatre situations : le Mac ne peut pas récupérer les fichiers nécessaires, le contenu téléchargé est incomplet, un script de démarrage ajoute du texte inattendu au protocole, ou le processus distant ne peut pas démarrer.

Commencez par la sortie Remote - SSH et le compte distant. Vérifiez son dossier personnel, ses droits d’écriture et l’état du répertoire utilisé par VS Code Server. Examinez également les fichiers de profil du shell : une commande qui affiche une bannière, un message de diagnostic ou une erreur lors d’une session non interactive peut perturber le protocole attendu.

La documentation officielle de dépannage Remote Development recommande de partir des journaux et propose les actions de nettoyage adaptées. Utilisez la commande « Kill VS Code Server on Host » uniquement après avoir conservé les éléments qui prouvent que le serveur est incomplet ou bloqué. Cette opération termine les sessions distantes de ce compte et peut interrompre un travail en cours.

Une suppression manuelle du répertoire du serveur est donc une action de reconstruction, pas un nettoyage anodin. La page officielle consacrée à la suppression du serveur Remote SSH doit être votre référence. Après réinstallation, validez successivement l’ouverture du dossier <projet>, le terminal intégré, Git, une extension réellement utilisée et une commande de construction.

SECTION 05 Les causes des déconnexions après l’ouverture

Une session qui s’établit puis se ferme ne doit pas être attribuée automatiquement à la latence. Le défaut peut provenir de la liaison SSH, du processus d’extension distant, d’une saturation des ressources du Mac, d’un proxy ou d’une identité réutilisée par plusieurs connexions.

Pour isoler la cause, gardez un terminal SSH ouvert pendant que vous reproduisez l’erreur dans VS Code. Si le terminal tombe au même moment, examinez la liaison ou le nœud. S’il reste actif tandis que les extensions échouent, regardez les journaux de l’hôte d’extension et l’état des processus distants.

Dans un environnement partagé, contrôlez aussi :

  • la mémoire et l’espace disponible du compte ou du nœud ;
  • les extensions qui dépendent d’un composant natif macOS ;
  • les variables de proxy transmises au processus distant ;
  • les connexions multiples qui réutilisent une même identité ;
  • la stabilité du routage lorsque l’adresse du nœud change.

ControlMaster, les paramètres de conservation de session et les variables de proxy ne sont pas des remèdes universels. Activez-les uniquement si les journaux montrent un problème de réutilisation ou de maintien de session, puis vérifiez que le comportement reste compatible avec vos règles d’administration. La FAQ officielle de Remote Development rappelle les limites générales de cette architecture.

SECTION 06 Questions fréquentes après les premiers tests

Pourquoi le terminal fonctionne-t-il alors que VS Code échoue ?

Le terminal et VS Code peuvent utiliser un client SSH, un fichier de configuration ou une clé différente. Comparez le chemin de l’exécutable, le compte, IdentityFile, le port et l’empreinte. Si ces éléments sont identiques, déplacez le diagnostic vers le transfert de ports et le démarrage de VS Code Server, car l’ouverture d’un shell ne valide pas toute la chaîne Remote - SSH.

Comment réparer un serveur VS Code qui ne démarre plus sur Mac ?

Conservez d’abord le journal, puis vérifiez les droits du compte, l’écriture dans son dossier personnel, les scripts de shell et la capacité du processus à démarrer. N’exécutez « Kill VS Code Server on Host » qu’après avoir établi que le serveur distant est incomplet ou bloqué. La suppression ferme les sessions de ce compte et doit être suivie d’un test complet du projet.

Que vérifier lorsque l’installation de VS Code Server reste bloquée ?

Recherchez d’abord un échec d’accès sortant, un fichier partiel, une sortie parasite du shell ou un processus qui s’arrête immédiatement. Une session SSH interactive réussie n’établit pas que l’installation peut récupérer et lancer son composant distant. Après correction, relancez l’installation une fois, ouvrez un dossier, puis exécutez une commande du projet avant de conclure.

Que faire après le redémarrage du Mac distant ?

Vérifiez l’hôte, macOS Remote Login, le compte autorisé, la clé, le transfert et enfin VS Code Server. Effectuez cette séquence avec un accès de récupération disponible. Si SSH revient mais que le serveur distant casse systématiquement, le problème relève de la base du nœud ou du compte : reconstruisez-la ou remplacez le nœud au lieu de répéter une suppression de cache.

SECTION 07 La décision après la réparation

Utilisez la liste de décision suivante, dans l’ordre :

  • Si le terminal SSH échoue, choisissez d’abord la correction de l’adresse, de Remote Login, du compte, de la clé ou du réseau ; ne modifiez pas encore VS Code.
  • Si le terminal réussit mais que l’authentification Remote - SSH diffère, choisissez l’unification du client, du fichier de configuration et de l’identité ; ne désactivez pas la vérification de l’hôte.
  • Si l’authentification réussit mais que le transfert est refusé, choisissez l’analyse des directives SSH et une modification contrôlée avec accès de secours ; sinon revenez à la politique précédente.
  • Si le transfert réussit mais que VS Code Server échoue, choisissez la collecte des journaux, la vérification du compte et une réinstallation ciblée ; ne supprimez pas le répertoire sans preuve.
  • Si le serveur démarre mais que les extensions échouent, choisissez l’analyse de l’hôte d’extension, des dépendances natives et des ressources ; ne concluez pas à une panne réseau sans test parallèle.
  • Si le problème revient après chaque redémarrage, choisissez la reconstruction du nœud ou son remplacement ; les nettoyages répétés ne corrigent pas une base d’environnement non persistante.

SECTION 08 La validation finale après un redémarrage

La réparation n’est terminée que lorsque le même dépôt passe une boucle de validation reproductible. Notez l’heure et le résultat de chaque jalon :

  1. connexion SSH depuis le terminal ;
  2. connexion Remote - SSH avec le même compte ;
  3. ouverture de <projet> dans VS Code ;
  4. ouverture d’un terminal distant ;
  5. opération Git ;
  6. construction ou test représentatif du projet ;
  7. fermeture du client local et nouvelle connexion ;
  8. redémarrage contrôlé du Mac ;
  9. nouvelle vérification de Remote Login et de VS Code Server ;
  10. reprise de la construction sans réinitialisation manuelle.

Cette validation distingue une correction durable d’un état favorable obtenu après un simple redémarrage du processus. Pour un nœud destiné à Xcode, à l’audio, à la vidéo ou au design, ajoutez également l’ouverture de l’outil macOS réellement requis : une connexion VS Code réussie ne garantit pas que les dépendances graphiques, les licences ou les composants natifs du projet soient opérationnels.

Résultat observé Décision technique Risque restant
SSH, Remote - SSH et projet fonctionnent avant et après redémarrage Conserver le nœud et documenter la configuration Surveiller les changements de clé, de réseau et d’extensions
SSH fonctionne, mais VS Code Server échoue après redémarrage Refaire la base du compte ou reconstruire l’environnement Perte de temps à chaque nouvelle session
Le transfert est refusé par la politique SSH Corriger la politique avec une voie de récupération Impact possible sur d’autres utilisateurs et tâches
Le nœud reste accessible mais ses ressources empêchent le serveur de démarrer Réduire la charge, revoir l’allocation ou changer de nœud Nouvelle panne lors des constructions lourdes
Aucun accès SSH ni canal de secours après redémarrage Demander une récupération opérateur ou remplacer le nœud Impossibilité de réparer à distance

SECTION 09 Le choix de l’environnement distant

Besoin de développement Condition d’acceptation Choix recommandé
Utiliser ponctuellement un outil macOS depuis Windows ou Linux SSH stable, VS Code Server récupérable et projet ouvrable Garder un Mac distant vérifié à la demande
Maintenir un nœud de construction ou de test Reprise après redémarrage et accès administrateur documentés Choisir un nœud durable avec canal de récupération
Partager un Mac entre plusieurs ingénieurs Comptes séparés, règles de transfert explicites et ressources surveillées Éviter les clés partagées et formaliser les droits
Travailler sur un projet audio, vidéo ou design Accès macOS complet, outils natifs testés et session graphique disponible Valider l’usage réel, pas seulement le terminal
Répéter les pannes de serveur malgré un SSH sain Échec reproductible après redémarrage ou réinstallation Reconstruire l’environnement ou changer de Mac

Un poste local Windows ou Linux reste avantageux pour les outils qui y sont natifs, mais il devient une solution incomplète dès que votre chaîne dépend de macOS, de Xcode ou d’un composant graphique Apple. Une machine virtuelle mal reproduite ajoute des écarts de pilotes, de droits et de persistance, tandis qu’un Mac mini placé sans canal de récupération vous laisse dépendant de l’accès physique lors d’un redémarrage raté.

Pour tester cette expérience sans immobiliser immédiatement un budget matériel, vous pouvez examiner les solutions de Mac distant de VPSNIX, puis comparer les conditions sur la page des offres. Avant de retenir une formule, exigez le même parcours de validation : compte administrateur, SSH, Remote - SSH, ouverture du dépôt, construction réelle et reprise après redémarrage. Le critère décisif n’est pas que le Mac soit joignable aujourd’hui, mais que votre environnement de développement puisse être restauré lorsque le nœud, le client ou VS Code Server échoue.

SECTION 10 FAQ

Pourquoi la connexion SSH fonctionne-t-elle dans le terminal mais pas dans VS Code Remote SSH ?

Le terminal et VS Code peuvent appeler des clients SSH différents, lire des fichiers de configuration distincts ou utiliser des identités différentes. Comparez le chemin du client, l’hôte, le compte, IdentityFile et les journaux détaillés. Si l’authentification réussit mais que VS Code échoue ensuite, examinez plutôt le transfert de ports et le démarrage de VS Code Server.

Que faire lorsque VS Code Server refuse de démarrer sur macOS ?

Commencez par consulter la sortie Remote - SSH et l’état du répertoire distant, puis vérifiez que le compte peut lancer un processus et écrire dans son dossier personnel. Recherchez aussi les sorties produites par les scripts de shell. N’effacez le serveur distant qu’après avoir conservé les journaux et confirmé qu’une réinstallation est nécessaire.

Comment débloquer une installation de VS Code Server qui reste en attente ?

Distinguez d’abord un nœud sans accès sortant, un téléchargement incomplet, un script de profil qui pollue la session et un processus qui ne démarre pas. Une connexion SSH interactive réussie ne prouve pas que l’installation peut aboutir. Corrigez la cause identifiée, relancez une seule installation, puis testez l’ouverture d’un dossier et d’un terminal distant.

Comment diagnostiquer un Mac distant inaccessible après son redémarrage ?

Vérifiez successivement la disponibilité du nœud, macOS Remote Login, l’accès du compte autorisé, la clé utilisée et l’état de VS Code Server. Conservez un canal d’administration distinct avant toute modification du service SSH. Si le terminal reste stable mais que le serveur distant échoue après chaque redémarrage, reconstruisez l’environnement ou changez de nœud plutôt que de supprimer indéfiniment les caches.

Pour aller plus loin