Vou assumir algumas coisas:
- O servidor SSH ao qual você está se conectando (FirewalledMachine) permite o tunelamento SSH.
- O serviço VNC funciona (no FirewalledMachine).
- Esse
localhost
é mapeado corretamente nas duas máquinas.
As portas VNC começam em 5900 para exibição 0, subindo de lá. Portanto, crie um túnel SSH durante a conexão, alterando o comando SSH do lado do cliente a partir de:
$ ssh -p 2210 user@server
para:
$ ssh -L 5900:localhost:5900 -p 2210 user@server
(O primeiro 5900
é o encapsulamento, como será visto no lado do cliente. A segunda parte, localhost:5900
, é o endereço e a porta aos quais os dados que chegam pelo encapsulamento estão conectados, em relação ao lado do servidor .)
Agora, a porta VNC remota foi mapeada para uma porta local correspondente, para que você possa conectar o VNC assim:
$ vncviewer localhost:0
(o VNC usa IDs de exibição X em vez de números de porta. O monitor 0 geralmente mapeia para a porta 5900, embora seja possível configurar o servidor para usar uma porta inicial diferente.)
Tentar usar 5900 localmente pode ser um problema se você já tiver a porta em uso por causa, por exemplo, do sistema X Windows local. Se for esse o caso, você pode obter melhores resultados ao alternar para uma porta local diferente, como em:
$ ssh -L 5910:localhost:5900 -p 2210 user@server
$ vncviewer localhost:10