L'accès à un Mac distant pour le développement, la CI ou le partage d'écran ne peut pas reposer sur un simple mot de passe. L'authentification par clé SSH combinée à l'authentification à deux facteurs (2FA) réduit le vol de credentials et l'accès non autorisé. Ce guide décrit comment durcir votre Mac distant avec des clés SSH et, si besoin, la 2FA, tout en gardant le trafic VNC à l'intérieur d'un tunnel SSH.
Pourquoi clés SSH et 2FA pour les Mac distants
Un mot de passe seul résiste mal au brute force, au phishing et à la réutilisation. Les clés SSH remplacent le mot de passe par une paire de clés : la clé privée reste sur votre machine, la clé publique sur le serveur. Même en cas de compromission du serveur, un attaquant ne peut pas dériver la clé privée. Ajouter la 2FA (TOTP, WebAuthn ou équivalent) introduit un second facteur, temporel ou lié à un appareil, de sorte qu'un vol de credentials ne suffit plus.
Pour les Mac cloud utilisés en CI ou en développement à distance, l'authentification par clé SSH constitue la base. De nombreux fournisseurs, dont VNCMac, livrent des instances avec SSH activé et l'injection de clés. Imposer la 2FA sur le compte Mac ou au niveau de la passerelle limite encore les dégâts en cas de perte de portable ou de fuite de clé. Les recommandations du secteur (Teleport et solutions similaires) préconisent des certificats à courte durée de vie ou la MFA pour SSH lorsque la conformité ou le risque l'exigent.
Étape 1 : Générer et utiliser une clé SSH
Sur votre machine locale, générez une paire Ed25519 ou RSA. Ed25519 est préférable pour des clés plus courtes et des opérations plus rapides ; RSA 4096 reste courant lorsque la compatibilité est requise.
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519_mac_distant
Utilisez une passphrase solide lorsque vous y êtes invité. La passphrase protège le fichier de clé sur disque ; elle n'est pas transmise sur le réseau. Copiez la clé publique vers le Mac distant avec ssh-copy-id ou en ajoutant le contenu de ~/.ssh/id_ed25519_mac_distant.pub dans ~/.ssh/authorized_keys sur le serveur.
ssh-copy-id -i ~/.ssh/id_ed25519_mac_distant.pub utilisateur@ip-mac-distant
Ensuite, connectez-vous avec ssh -i ~/.ssh/id_ed25519_mac_distant utilisateur@ip-mac-distant. Désactivez l'authentification par mot de passe sur le serveur pour forcer l'accès par clé uniquement. Sur macOS, dans Réglages système > Général > Partage > Connexion à distance, assurez-vous que l'accès disque pour les utilisateurs distants est configuré selon vos besoins ; l'authentification par clé SSH fonctionne avec la Connexion à distance sans activer les connexions par mot de passe.
Étape 2 : Ajouter la 2FA au compte Mac (optionnel)
macOS ne propose pas nativement la 2FA pour SSH. Vous pouvez ajouter un second facteur en utilisant des modules PAM tels que Google Authenticator (TOTP). Cela suppose d'installer le module, de configurer PAM pour SSH et d'enregistrer l'utilisateur Mac avec une application d'authentification.
- Installer le PAM Google Authenticator : compilation depuis les sources ou via Homebrew (
brew install pam_google_authenticator) sur le Mac distant. - Exécuter
google_authenticator: générer un secret, flasher le QR code avec une app d'authentification et conserver les codes de secours. - Configurer PAM : ajouter
auth required pam_google_authenticator.sodans la configuration PAM liée à SSH (par ex./etc/pam.d/sshd). Tester avec une nouvelle session avant de fermer votre connexion SSH en cours.
Une fois la configuration en place, chaque connexion SSH demandera le code à usage unique après (ou en plus de) l'authentification par clé, selon votre pile PAM. On obtient ainsi « ce que vous avez » (l'appareil d'authentification) en plus de « ce que vous savez » (passphrase) ou « ce que vous avez » (fichier de clé).
« Les clés SSH éliminent le guessing de mot de passe ; la 2FA garantit qu'une clé volée ou copiée seule ne suffit pas pour accéder à l'hôte. » — Pratique courante de durcissement SSH en entreprise
Étape 3 : Tunneliser le VNC via SSH
Si vous utilisez le partage d'écran (VNC) vers le même Mac, n'exposez pas le port VNC (5900) directement sur Internet. Tunnelisez-le via SSH afin que tout le trafic soit chiffré et que seul le port SSH (22) soit ouvert.
Depuis votre machine locale, créez un transfert de port local vers le port VNC du Mac distant :
ssh -L 5900:localhost:5900 -i ~/.ssh/id_ed25519_mac_distant utilisateur@ip-mac-distant -N
Puis connectez votre client VNC à localhost:5900. La connexion est transférée via le tunnel SSH. Pour une configuration persistante, ajoutez le même transfert dans votre ~/.ssh/config :
Host mac-distant
HostName ip-mac-distant
User utilisateur
IdentityFile ~/.ssh/id_ed25519_mac_distant
LocalForward 5900 127.0.0.1:5900
Lancez ssh -N mac-distant en arrière-plan ou utilisez un Launch Agent pour que le tunnel soit disponible dès que vous avez besoin du VNC. Ainsi, le trafic SSH et VNC reste confidentiel et protégé en intégrité.
Check-list sécurité pour l'accès à un Mac distant
- SSH : n'utiliser que l'authentification par clé ; désactiver le mot de passe dans
sshd_config(PasswordAuthentication no,PubkeyAuthentication yes). - Gestion des clés : protéger la clé privée par une passphrase ; envisager une clé matérielle (ex. YubiKey) en environnement sensible.
- 2FA : activer TOTP ou équivalent pour SSH ou le compte utilisateur Mac lorsque la politique l'exige.
- VNC : ne pas lier le partage d'écran à 0.0.0.0 ; utiliser le transfert de port SSH pour que le VNC ne soit joignable que via localhost sur le serveur.
- Pare-feu : n'autoriser que le port SSH (22) depuis des IP connues ou un VPN ; bloquer l'accès direct au port 5900 depuis Internet.
- Mises à jour : maintenir macOS et OpenSSH à jour pour corriger rapidement les CVE connues.
Mac cloud et VNCMac
Les Mac cloud loués doivent suivre les mêmes règles : injection de clé SSH à la mise en service, pas de mot de passe partagé, et VNC uniquement via SSH. Les Mac mini dédiés VNCMac supportent l'accès par clé SSH et un contrôle total du système ; vous pouvez installer les modules PAM et configurer la 2FA vous-même. L'instance étant mono-locataire, vous ne partagez pas la machine avec d'autres clients, ce qui réduit la surface d'impact d'une mauvaise configuration et permet des politiques de pare-feu et de connexion plus strictes.
Pour les équipes qui ont besoin d'audit ou d'accès centralisé, combiner les clés SSH avec un bastion ou une solution supportant certificats à courte durée de vie et MFA (Teleport, SSH géré par Okta, etc.) permet d'aligner l'accès aux Mac distants avec les exigences d'identité et de conformité. Les principes ci-dessus restent valables : clés plutôt que mots de passe, 2FA lorsque nécessaire, et pas de VNC exposé.
En résumé
Durcissez l'accès à votre Mac distant en utilisant l'authentification par clé SSH et, si besoin, la 2FA. Générez une clé Ed25519 (ou RSA), copiez la clé publique sur le Mac, désactivez les connexions par mot de passe et ajoutez un module PAM TOTP pour un second facteur. Tunnelisez le VNC via SSH pour n'exposer que le port 22 et chiffrer tout le trafic. Pour les Mac cloud, appliquez les mêmes pratiques et privilégiez des instances dédiées où vous maîtrisez SSH et le pare-feu. Pour des Mac distants prêts à l'emploi avec SSH et contrôle administrateur complet, pensez aux Mac mini dédiés chez VNCMac.