Eu tenho uma instância macOS do Amazon Elastic Compute Cloud (Amazon EC2) em um host dedicado. Quero acessar a instância por meio de uma interface gráfica de usuário (GUI).
Resolução
As etapas a seguir foram testadas no macOS Ventura 13.7.5, macOS Sonoma 14.7.5 e macOS Sequoia 15.4.1.
Importante: execute a sessão SSH mesmo quando estiver em uma sessão remota.
Conectar-se à sua instância do macOS do EC2
Use o SSH para se conectar à sua instância do macOS do Amazon EC2.
Linux
Para usar o SSH para se conectar à sua instância do macOS do EC2 como ec2-user, execute o seguinte comando:
ssh -i keypair_file ec2-user@Instance-Public-IP
Observação: substitua keypair_file pelo seu par de chaves e Instance-Public-IP pelo endereço IP público da sua instância.
Windows
O Windows 10 e versões posteriores têm um cliente OpenSSH instalado por padrão. Para ativar o cliente OpenSSH, conclua as seguintes etapas:
- Escolha Configurações.
- Escolha Aplicações e, em seguida, Aplicações e recursos.
- Escolha Gerenciar recursos opcionais.
- Escolha Adicionar um atributo e, em seguida, selecione Cliente OpenSSH. Se você estiver usando uma versão anterior do Windows, use o Git Bash para executar o seguinte comando:
ssh -i keypair_file ec2-user@Instance-Public-IP
Observação: quando a instância está em uma sub-rede pública, é possível torná-la acessível por meio de um endereço IP público ou de um endereço IP elástico. Para conectar a instância por meio de um endereço IP privado, use um servidor bastion ou jump. Ou use a AWS VPN ou o AWS Direct Connect para estabelecer uma conexão com sua instância por meio de um endereço IP privado. É uma prática recomendada usar o SSH para canalizar o tráfego para o serviço de compartilhamento de tela do macOS. Também é uma prática recomendada não abrir portas VNC em seus grupos de segurança.
Instalar o SSH de compartilhamento de tela do macOS
Para instalar e iniciar a tela do macOS compartilhando SSH a partir da instância macOS, execute o seguinte comando:
sudo launchctl enable system/com.apple.screensharing
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
Para definir uma senha para ec2-user, execute o seguinte comando:
sudo passwd ec2-user
Confirme se o sistema operacional (SO) está recebendo na porta 5900:
sudo lsof -i -n -P | grep TCP | grep 5900
A porta 5900 é o padrão para servidores VNC.
Saída esperada:
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)
Saia da sessão.
Conectar-se à instância por meio da GUI
É possível se conectar à GUI a partir do localhost ou do endereço IP/DNS público da instância.
Usar localhost
Observação: antes de se conectar à GUI, talvez seja necessário desativar o compartilhamento de tela em sua máquina Mac local. Isso ocorre porque tanto o compartilhamento de tela da sua máquina local quanto a conexão do Amazon EC2 tentam usar a porta 5900 e causar um conflito. Para desativar o compartilhamento de tela, escolha Preferências do sistema, Geral e, em seguida, Compartilhamento de tela. Defina o compartilhamento de tela como DESATIVADO.
Conclua as etapas a seguir:
- Para criar um túnel SSH para a porta VNC, execute o seguinte comando:
ssh -i keypair_file -L 5900:localhost:5900 ec2-user@Instance-Public-IP
Observação: substitua keypair_file pelo caminho da chave SSH. Substitua Instance-Public-IP pelo endereço IP da sua instância ou pelo nome DNS. Ou, se você se conectar por meio de uma rede privada, também poderá usar seu endereço IP privado.
- Use um cliente VNC para se conectar a localhost:5900.
macOS
O macOS tem um cliente VNC integrado. Para acessar o visualizador VNC, abra o Finder, escolha Ir e, em seguida, Conectar ao servidor. Ou use o atalho de teclado CMD + K. Em seguida, em Endereço do servidor, digite vnc://localhost:5900.
Windows
É possível usar um cliente VNC de terceiros, como o RealVNC Viewer. Se você usar o cliente RealVNC Viewer, na lista suspensa Arquivo, selecione Nova conexão. Em Servidor VNC: localhost:5900 Criptografia: Deixe Escolha de servidor VNC e selecione OK. Outros clientes, como o TightVNC no Windows, não funcionam com essa resolução.
Observação: você pode enfrentar erros de autenticação ao se conectar ao RealVNC Viewer. Para resolver esse problema, altere a configuração de Criptografia de Preferir ativado para Preferir desativado, ou de Preferir desativado para Preferir ativado.
Linux
É possível usar um cliente VNC de terceiros, como o Remmina. Para baixar a ferramenta, consulte Como instalar o Remmina no site do Remmina.
Usar um endereço IP público ou DNS
Se você não quiser ativar o compartilhamento de tela no seu Mac, use um endereço IP público ou DNS para se conectar à instância por meio da GUI.
Execute o seguinte comando:
ssh -i keypair_file ec2-user@Instance-Public-IP
Em seguida, siga a etapa 2 na seção Localhost para acessar o visualizador VNC e se conectar:
vnc://Instance-Public-IP:5900 or vnc://Instance-DNS-address:5900
Observação: para se conectar por meio de um endereço IP público, permita a porta 5900 nas regras do seu grupo de segurança.
Depois que a GUI do macOS for iniciada, conecte-se à sessão remota da instância do macOS como ec2-user com a nova senha que criou.
Informações relacionadas
Como instalar uma GUI na minha instância do Amazon EC2 que está executando a Amazon Linux 2?
Conectar-se à instância do Mac usando SSH ou GUI
amazon-ec2-mac-getting-started no site do GitHub