Deveria ser possível. Eu posso dar os comandos do Linux, você terá que procurar a configuração equivalente para os clientes SSH que você usa no Windows.
Da VM para B:
ssh -R localhost:2022:localhost:22 192.168.1.15
Isso encaminhará a porta 22 (presumivelmente o SSH) na VM do Ubuntu para a porta 2022 em 192.168.1.15.
De B a C:
ssh -R localhost:3022:localhost:2022 34.xxx.xx.xxx
Isso encaminhará o localhost:2022
(do qual foi encaminhado pelo comando anterior executado na VM) para 3022 em C.
De A para C:
ssh -L 4022:localhost:3022 34.xxx.xx.xxx
Isso encaminhará o localhost:3022
de C para A de 4022.
Assim, temos uma cadeia de encaminhamento:
- 4022 em A para
- 3022 em C para
- 2022 em B para
- 22 na VM
Finalmente, em A:
ssh localhost:4022
Isso deve se conectar à VM.
-
-L
éLocalForward
emssh_config
-
-R
éRemoteForward
Esta corrente pode ser encurtada. Por exemplo, dependendo das configurações de rede envolvidas, você poderia fazer de B para C:
ssh -R :3022:192.168.1.15:22 34.xxx.xx.xxx
B encaminhará diretamente 3022 de C para 22 na VM. E em A:
ssh 34.xxx.xx.xxx:3022