Seu pensamento de usar uma porta dinâmica para frente nunca funcionará. Pense nela logicamente - você precisa abrir uma porta local que seja encaminhada de sua máquina local, por hostA, para a porta 22 em hostB. Existem algumas maneiras de conseguir isso. Primeiro, a maneira deselegante e manual:
Primeiro, configure o túnel:
$ ssh -L2222:hostB:22 user@hostA
Em seguida, conecte-se ao hostB:
$ ssh -p 2222 user@localhost
A opção preferida é usar a diretiva ProxyCommand
do cliente ssh, que pode automatizar isso para você. Adicione algo assim ao seu ~/.ssh/config
:
host hostB
Hostname hostB
ProxyCommand ssh user@hostA nc %h %p 2> /dev/null
Depois de fazer isso, você pode fazer isso:
$ ssh hostB
... e o cliente ssh cuidará de tudo para você.