Développer sur un Mac distant depuis son ordinateur portable ou son poste fixe est devenu une pratique courante pour les équipes qui souhaitent profiter de l’écosystème macOS sans investir dans du matériel dédié. L’extension Remote SSH de VS Code transforme un Mac dans le cloud en environnement de développement de premier ordre, avec IntelliSense, débogage et terminal intégrés. Ce guide vous accompagne pas à pas dans la configuration et les bonnes pratiques pour obtenir un workflow stable et performant sur un Mac loué.
Pourquoi combiner macOS à distance et VS Code ?
Les équipes choisissent un Mac distant pour les compilations Xcode, les simulateurs iOS et les chaînes d’outils réservées à macOS, tout en évitant l’achat et la maintenance de machines locales. VS Code Remote SSH conserve votre éditeur sur votre machine tandis que le code et les outils s’exécutent sur l’hôte distant. Le serveur VS Code s’installe une fois sur le Mac puis est réutilisé à chaque connexion, ce qui réduit le temps de mise en place et garantit un comportement cohérent.
Sur des Mac physiques dédiés, comme les instances bare metal proposées par VNCMac, la latence et la contention CPU restent minimales. À l’inverse, des clouds partagés ou fortement virtualisés peuvent introduire des délais perceptibles et des temps de build instables. Pour des workflows exigeants en compilation, un Mac mini dédié surclasse souvent les machines virtuelles cloud génériques, tant en régularité qu’en coût par build.
Prérequis
Avant de vous connecter, assurez-vous que les deux extrémités de la chaîne sont prêtes.
- Machine locale : VS Code ou VS Code Insiders ; un client SSH compatible OpenSSH (inclus sous macOS et la plupart des distributions Linux) ; l’extension Remote - SSH installée depuis la place de marché.
- Mac distant : macOS 10.14 (Mojave) ou supérieur, avec la connexion à distance (SSH) activée dans Réglages Système > Général > Partage. Au minimum 1 Go de RAM ; 2 Go de RAM et un processeur 2 cœurs sont recommandés pour un usage confortable.
Authentification par clé SSH
Les connexions par mot de passe sont fragiles et moins sécurisées. L’authentification par clé permet à VS Code de se connecter sans saisie interactive et ouvre la voie à l’automatisation de scripts ou de pipelines CI si besoin.
Générer une paire de clés SSH
Sur votre machine locale, générez une clé Ed25519 (recommandée pour les performances et la sécurité) :
ssh-keygen -t ed25519 -b 256 -C "[email protected]" -f ~/.ssh/id_ed25519_vncmac
Vous pouvez définir une passphrase et l’enregistrer dans le trousseau de votre système pour ne pas être redemandé à chaque connexion.
Copier la clé publique vers le Mac distant
Si le Mac distant dispose de ssh-copy-id (par exemple via Homebrew), exécutez :
ssh-copy-id -i ~/.ssh/id_ed25519_vncmac.pub utilisateur@votre-mac-distant
Sinon, ajoutez le contenu de ~/.ssh/id_ed25519_vncmac.pub dans ~/.ssh/authorized_keys sur le Mac distant. Vérifiez avec ssh -i ~/.ssh/id_ed25519_vncmac utilisateur@votre-mac-distant : la connexion doit s’établir sans mot de passe.
Fichier de configuration SSH
Un fichier ~/.ssh/config bien structuré facilite la gestion de plusieurs hôtes et garantit que VS Code utilise la bonne clé et les bonnes options.
« Une seule entrée dans la config SSH évite des dizaines d’options en ligne de commande et les erreurs de frappe. Définissez Host, HostName, User et IdentityFile une fois, puis réutilisez-les depuis le terminal et VS Code. » — Équipe technique VNCMac
Exemple pour un hôte Mac cloud VNCMac :
Host vncmac-dev
HostName votre-hote-assigne.vncmac.com
User votre-utilisateur
Port 22
IdentityFile ~/.ssh/id_ed25519_vncmac
IdentitiesOnly yes
Choisissez un alias Host court (par exemple vncmac-dev) pour le sélectionner facilement dans « Remote-SSH : Connect to Host » de VS Code. IdentitiesOnly yes impose l’usage de la clé indiquée et évite d’en proposer d’autres au serveur. Adaptez HostName, User et Port selon les informations fournies par votre prestataire.
Se connecter depuis VS Code
Ouvrez la palette de commandes (Cmd+Shift+P sur macOS, Ctrl+Shift+P sur Windows/Linux), lancez Remote-SSH : Connect to Host et choisissez l’hôte défini dans votre config (par exemple vncmac-dev). VS Code installera ou mettra à jour le serveur VS Code sur le Mac distant puis ouvrira une nouvelle fenêtre attachée à cet hôte.
Ouvrez un dossier du système de fichiers distant via Fichier > Ouvrir un dossier. Vous travaillez ensuite dans ce chemin : éditions, terminal et extensions compatibles « remote » s’exécutent dans le contexte du Mac distant.
Gestion des extensions
Les extensions peuvent s’exécuter en local (sur votre machine) ou sur l’hôte distant. Les serveurs de langage, linters et débogueurs qui ont besoin d’accéder aux fichiers du projet doivent être installés sur le distant. Une fois connecté, utilisez la vue Extensions et installez celles dont vous avez besoin ; elles seront marquées « SSH : nom_hôte » lorsqu’elles sont actives sur cet hôte.
- Installez les packs de langue et les thèmes/UI en local pour qu’ils s’appliquent à votre client.
- Installez les extensions liées au projet (Swift, Python, ESLint, etc.) sur le distant pour qu’elles s’exécutent à côté du code.
Cette répartition garde l’environnement distant léger et évite les doublons ou conflits d’installation.
Redirection de ports
Si votre application ou outil écoute sur un port du Mac distant (par exemple un serveur de dev sur 3000 ou un port de débogage), vous pouvez le rediriger vers votre machine locale. Utilisez la vue « Forwarded Ports » dans VS Code ou la commande « Forward a Port » depuis la palette, puis saisissez le port distant. Vous pourrez alors ouvrir http://localhost:3000 (ou le port choisi) dans votre navigateur local alors que le processus tourne sur le Mac.
Performance et stabilité sur Mac cloud
Les performances de Remote SSH dépendent de la latence réseau et de la charge de l’hôte distant. Sur un Mac mini dédié, le processeur et la mémoire ne sont pas partagés avec d’autres utilisateurs, ce qui maintient des temps de build et d’indexation prévisibles. De nombreuses équipes constatent des builds Xcode ou Unity 20 à 40 % plus rapides et plus réguliers en passant de machines virtuelles cloud partagées à un Mac dédié, avec en prime une expérience SSH et VS Code stable.
Pour une expérience optimale : privilégiez une connexion filaire ou un Wi‑Fi stable, gardez l’extension Remote - SSH à jour et assurez-vous que le Mac distant dispose de suffisamment de RAM et de cœurs pour votre charge (2 Go RAM et 2 cœurs constituent un minimum pratique pour Xcode ou des IDE lourds).
Optionnel : terminal et intégration Git
Lorsque vous ouvrez un terminal dans VS Code en étant connecté via SSH, le shell s’exécute sur le Mac distant. Définissez EDITOR (ou GIT_EDITOR) sur code --wait pour que git commit et commandes similaires ouvrent l’éditeur dans votre fenêtre VS Code actuelle. Sur l’hôte distant, ajoutez dans ~/.bashrc ou ~/.zshrc :
export EDITOR="code --wait"
Remplacez code par code-insiders si vous utilisez Insiders. Ainsi, toute l’édition reste dans votre session remote existante.
Dépannage
Si la connexion échoue ou reste bloquée, consultez le journal Remote-SSH : Affichage > Sortie, puis « Remote - SSH ». Causes fréquentes : HostName ou User incorrect, IdentityFile absent, ou Connexion à distance désactivée sur le Mac. Vérifiez que le port 22 n’est pas bloqué par un pare-feu. Si le serveur VS Code ne s’installe pas, connectez-vous d’abord en terminal (ssh vncmac-dev) puis relancez VS Code ; vous pouvez aussi définir remote.SSH.path pour un client SSH personnalisé.
Sécurité et bonnes pratiques
Utilisez uniquement l’authentification par clé, conservez la clé privée en local et renouvelez les clés lorsque l’équipe ou les machines changent. Lorsque vous louez un Mac cloud, privilégiez un fournisseur avec matériel physique dédié et isolation réseau claire : les Mac mini dédiés offrent un contrôle total et des performances cohérentes pour VS Code Remote SSH.
En résumé
VS Code Remote SSH vous offre une expérience d’éditeur de qualité locale sur un hôte macOS distant. Utilisez des clés SSH et un ~/.ssh/config clair, connectez-vous via l’extension Remote-SSH, installez les bonnes extensions côté distant et recourez au port forwarding lorsque vous devez accéder à des services sur le Mac. Pour les meilleures performances et la plus grande régularité, associez cette configuration à un Mac cloud dédié comme ceux proposés par VNCMac.