Com ssh > = 7.3 (necessário somente no Computador_A), essas duas etapas podem ser feitas sob o capô com a opção -J
/ ProxyJump
, simplificando o que você precisa fazer (aumentando a segurança disso exemplo específico):
ssh -L 5904:localhost:5904 -J myusername@Machine_B myusername@Machine_C
Desta forma, além da simplicidade, o acesso VNC também não é feito no Machine_B como você fazia, então outros usuários do Machine_B não podem usar o seu VNC.
Para a explicação, esta seria a maneira tradicional (segura) de fazer o mesmo:
ssh -L 2222:Machine_C:22 myusername@Machine_B
em outro terminal ainda em Machine_A:
ssh -L 5904:localhost:5904 myusername@localhost:2222
Note que nenhum ponto de entrada de túnel é disponibilizado em Machine_B. ProxyJump
( -J
) faz aproximadamente o mesmo sob o capô, exceto que ele usa canos entre os dois processos ssh em vez da porta 2222.
Agora, por ser capaz de não enviar um ssh para o Machine_C, isso provavelmente parece ser um problema de acesso / configuração do VNC e não um problema do ssh. Tem certeza de que o VNC não está restrito a localhost? Quer por configuração, quer por um firewall local?