Eu tenho uma configuração semelhante e ela está funcionando bem. A diferença que eu notei é que, no seu comando machine-a ssh, você está usando 9999:machine-b:3344
enquanto eu uso 9999:localhost:3344
. Seu caminho também não funciona para mim, mas não produz os mesmos erros. Para completar, é isso que eu recebo:
debug1: Connecting to localhost [::1] port 9999.
debug1: Connection established.
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.5p1 Debian-6
channel 2: open failed: connect failed: Connection refused
ssh_exchange_identification: Connection closed by remote host'
Os seguintes comandos fazem o truque para mim:
machine-c$ ssh -f -N -T -R 3344:localhost:333 user@machine-b
Agora na máquina-a:
machine-a$ ssh -f -N -T -L 9999:localhost:3344 user@machine-b
Como não tenho nada rodando na porta 333 da máquina-c, eu a substituí pela 22 e verifique se o túnel está funcionando simplesmente conectando através do ssh:
machine-a$ ssh -p 9999 user@localhost