31.01.2025

Como estabelecer uma conexão VNC por meio de um túnel SSH no Ubuntu 20.04

Recentemente, abordamos o processo de instalação e configuração de um servidor TightVNC no Ubuntu 20.04. Além disso, agora será descrito o processo de configuração de um túnel SSH seguro para uma conexão VNC. Isso ocorre porque o VNC em si não é seguro. O uso de um túnel SSH corrige a situação.

Preparação

Na primeira parte, abrimos a porta 5901 do firewall. A conexão agora será direcionada pelo túnel SSH, portanto, você precisa fechar as portas abertas para o VNC.

ufw deny 5901/tcp

Você também precisa fechar todas as sessões do TightVNC em execução.
[/passo]

vncserver -kill :1

E iniciar uma sessão que esteja ouvindo apenas conexões internas. Depois de abrir o túnel SSH, essa será a nossa conexão.

vncserver -localhost

Se você tiver configurado o serviço TightVNC, abra sua configuração.
[/passo]

nano /etc/systemd/system/vncserver.service

Localize o parâmetro ExecStart e faça com que ele tenha a seguinte aparência:

ExecStart=/usr/bin/vncserver -localhost

Recarregar o systemd:

systemctl daemon-reload

E inicie (ou reinicie) o serviço:

systemctl enable --now vncserver

Criando um túnel SSH

O comando a seguir deve ser executado no computador cliente a partir do qual você está se conectando ao servidor VNC. Ele conecta a porta 61000 no computador local à porta 5901 no servidor por meio de um túnel SSH.

ssh -L 61000:localhost:5901 -N -l username VNC_server_IP

As seguintes opções são usadas para criar um túnel:

  • L - encaminha informações da porta local 61000 para a porta remota 5901 via túnel SSH;
  • -N - especifica apenas o encaminhamento de portas, não a execução do comando;
  • -l - especifica o nome de usuário para criar o túnel.

Substitua username e VNC_server_IP por seus próprios parâmetros. Se você se conectar usando uma chave SSH, não se esqueça de adicionar o parâmetro -i, como em uma conexão SSH normal.

Usando o Putty para criar um túnel SSH

Use os parâmetros normais de conexão no Putty. Além desses, você precisa adicionar algumas configurações. Ou seja, vá para Conexão - SSH - Túneis, digite 61000 na porta de origem e localhost:5901 no destino.

Clique em Add and Apply.
[/passo]

Conectando-se a uma área de trabalho remota

O túnel foi criado. Para se conectar à área de trabalho remota, use o mesmo cliente da primeira parte do tutorial - qualquer cliente VNC que desejar. Digite localhost:61000 como o servidor VNC.