Para fazer exatamente o que você solicitou ( B:1234=>C:2345 ), isso deve ser executado em B :
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
Também requer a abertura da 1234 port em B firewall. Em seguida, conecte-se a 1.2.3.4:1234 do lado de fora para obter 10.0.0.3:2345 como se estivesse se conectando do C em si (por meio de sua interface de loopback). Qualquer um pode se conectar, então tenha isso em mente se o servidor em C (seja qual for o servidor) não está protegido por senha ou algo assim.
Uma maneira mais fácil e segura de ir de A a C é a seguinte. Não faz exatamente o que você pediu mas provavelmente é o que você quer. Em A :
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Em seguida, conecte-se a 127.0.0.1:1234 on A para acessar a porta 2345 on C . C verá o tráfego vindo de B . Esta conexão está disponível apenas para A , então o método é muito mais seguro que o anterior.
Se você quiser permitir que outros computadores (digamos: da LAN em que A está) se conectem, você deve usar a opção -g e especificar o endereço de ligação. Por exemplo:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
Nesse caso, reconfigure o firewall em A de acordo e conecte-se a A_LAN_address_here:1234 .