J'ai une instance macOS Amazon Elastic Compute Cloud (Amazon EC2) sur un hôte dédié. Je souhaite accéder à l'instance via une interface utilisateur graphique (GUI).
Résolution
Les étapes suivantes sont testées sur macOS Ventura 13.7.5, macOS Sonoma 14.7.5 et macOS Sequoia 15.4.1.
Important : Exécutez la session SSH même lorsque vous vous trouvez dans une session à distance.
Se connecter à son instance macOS EC2
Utilisez SSH pour vous connecter à votre instance Linux Amazon EC2.
Linux
Pour utiliser SSH pour vous connecter à votre instance macOS EC2 en tant que ec2-user, exécutez la commande suivante :
ssh -i keypair_file ec2-user@Instance-Public-IP
Remarque : Remplacez keypair_file par votre paire de clés et Instance-Public-IP par l'adresse IP publique de votre instance.
Windows
Un client OpenSSH est installé par défaut sur Windows 10 et versions ultérieures. Pour activer le client OpenSSH, procédez comme suit :
- Sélectionnez Paramètres.
- Choisissez Applications, puis Applications et fonctionnalités.
- Choisissez Gérer les fonctionnalités en option.
- Sélectionnez Ajouter une fonctionnalité, puis Client OpenSSH. Si vous utilisez une version antérieure de Windows, utilisez Git Bash pour exécuter la commande suivante :
ssh -i keypair_file ec2-user@Instance-Public-IP
Remarque : Lorsque l’instance se trouve dans un sous-réseau public, vous pouvez rendre l'instance accessible via une adresse IP publique ou une adresse IP Elastic. Pour connecter l'instance via une adresse IP privée, utilisez un serveur bastion ou de saut. Vous pouvez également utiliser AWS VPN ou AWS Direct Connect pour établir une connexion à votre instance via une adresse IP privée. Il est recommandé d'utiliser SSH pour canaliser le trafic vers le service de partage d'écran macOS. Il est également recommandé de ne pas ouvrir les ports VNC dans vos groupes de sécurité.
Installer le SSH de partage d'écran macOS
Pour installer et démarrer le SSH de partage d'écran macOS à partir de l'instance macOS, exécutez la commande suivante :
sudo launchctl enable system/com.apple.screensharing
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
Pour définir un mot de passe pour ec2-user, exécutez la commande suivante :
sudo passwd ec2-user
Vérifiez que le système d'exploitation (OS) écoute sur le port 5900 :
sudo lsof -i -n -P | grep TCP | grep 5900
Le port 5900 est le port par défaut pour les serveurs VNC.
Sortie attendue :
launchd 1 root 15u IPv6 0xa78dfebd53aa990a 0t0 TCP *:5900 (LISTEN)
launchd 1 root 16u IPv4 0x7a1b35dd60e49ee6 0t0 TCP *:5900 (LISTEN)
launchd 1 root 19u IPv6 0xa78dfebd53aa990a 0t0 TCP *:5900 (LISTEN)
launchd 1 root 20u IPv4 0x7a1b35dd60e49ee6 0t0 TCP *:5900 (LISTEN)
Quittez la session.
Se connecter à l’instance via l'interface graphique
Vous pouvez vous connecter à l'interface graphique à partir de l'hôte local ou de l'adresse IP publique/DNS de l'instance.
Utilisez un hôte local
Remarque : Avant de vous connecter à l'interface graphique, vous devrez peut-être désactiver le partage d'écran sur votre ordinateur Mac local. Cela est dû au fait que le partage d'écran de votre machine locale et la connexion Amazon EC2 tentent d'utiliser le port 5900 et provoquent un conflit. Pour désactiver le partage d'écran, choisissez Préférences système, Général, puis Partage d'écran. Définissez le partage d'écran sur DÉSACTIVÉ.
Procédez comme suit :
- Pour créer un tunnel SSH vers le port VNC, exécutez la commande suivante :
ssh -i keypair_file -L 5900:localhost:5900 ec2-user@Instance-Public-IP
Remarque : Remplacez keypair_file par le chemin de votre clé SSH. Remplacez Instance-public-IP par l'adresse IP de votre instance ou le nom DNS. Ou si vous vous connectez via un réseau privé, vous pouvez également utiliser votre adresse IP privée.
- Utilisez un client VNC pour vous connecter à localhost:5900.
macOS
macOS est doté d’un client VNC intégré. Pour accéder à la visionneuse VNC, ouvrez le Finder, sélectionnez Aller, puis Connecter au serveur. Vous pouvez également utiliser le raccourci clavier CMD + K. Puis, dans Adresse du serveur, saisissez vnc://localhost:5900.
Windows
Vous pouvez utiliser un client VNC tiers tel que RealVNC Viewer. Si vous utilisez le client RealVNC Viewer, choisissez Nouvelle connexion dans la liste déroulante Fichier. Puis, dans Serveur VNC : localhost:5900 Chiffrement : Laisser le serveur VNC choisir, sélectionnez OK. D'autres clients, tels que TightVNC sous Windows, ne fonctionnent pas avec cette résolution.
Remarque : Vous pouvez rencontrer des erreurs d'authentification lorsque vous vous connectez à RealVNC Viewer. Pour résoudre ce problème, modifiez le paramètre Chiffrement de Préférer activé à Préférer désactivé, ou de Préférer désactivé à Préférer activé.
Linux
Vous pouvez utiliser un client VNC tiers tel que Remmina. Pour télécharger l'outil, consultez la section Comment puis-je installer Remmina sur le site Web de Remmina.
Utiliser une adresse IP publique ou un DNS
Si vous ne souhaitez pas activer le partage d'écran sur votre Mac, utilisez une adresse IP publique ou un DNS pour vous connecter à l'instance via l'interface graphique.
Exécutez la commande suivante :
ssh -i keypair_file ec2-user@Instance-Public-IP
Puis, suivez l'étape 2 de la section Hôte local pour accéder au visualiseur VNC et vous connecter :
vnc://Instance-Public-IP:5900 or vnc://Instance-DNS-address:5900
Remarque : Pour vous connecter via une adresse IP publique, autorisez le port 5900 dans les règles de votre groupe de sécurité.
Une fois l'interface graphique de macOS lancée, connectez-vous à la session à distance de l'instance macOS en tant qu’utilisateur ec2-user avec le nouveau mot de passe que vous avez créé.
Informations connexes
Comment installer une interface utilisateur graphique sur une instance Amazon EC2 exécutant Amazon Linux 2 ?
Se connecter à son instance Mac via SSH ou une interface graphique
amazon-ec2-mac-getting-started sur le site Web de GitHub