Veja como uma sessão VNC pode ser criada em um túnel ssh com um salto de gateway entre as máquinas cliente e de destino:
/ etc / ssh / sshd_config (na máquina de destino) deve ter estas linhas:
X11Forwarding yes
XAuthLocation /usr/bin/xauth
Seu caminho para o xauth pode ser diferente, mas por padrão o sshd procura no local errado, então esse valor deve ser definido.
.ssh / config (na máquina do cliente):
Host example.com
Hostname foo.example.com
HostKeyAlias example.com
ProxyCommand ssh -t -C [email protected] /bin/nc %h 22
Então, do cliente, posso correr
me@localhost$ ssh -X -C example.com
Isso inicia uma sessão X no meu cliente, assim como uma conexão ssh com example.com. Agora, apenas mais alguns comandos no host remoto para exibir o VNC:
[email protected]$ vncserver :n
[email protected]$ vncviewer -encodings "copyrect tight zlib corre rre raw" :n
Nos comandos acima,: n é o número de exibição no qual você deseja iniciar o vnc e a tela em que o vncviewer deve procurar a sessão do vnc. Como isso se parece com uma conexão local com o VNC, é uma boa idéia especificar algumas codificações melhores, já que o vncviewer será padronizado para raw, dando um desempenho ruim na rede.
É isso!