Respostas:
Se você usar a -v
opção, ssh
ele mostrará o que você está encaminhando (mas também mostrará várias outras mensagens de depuração):
ssh -v -L2222:localhost:22 remotehost
Irá mostrar-lhe:
...debug messages...
debug1: Authentication succeeded (publickey).
Authenticated to remotehost ([10.0.0.23]:22).
debug1: Local connections to LOCALHOST:2222 forwarded to remote address localhost:22
debug1: Local forwarding listening on ::1 port 2222.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 2222.
...debug messages...
E então, quando você estiver conectado a esse shell remoto, poderá digitar uma sequência de teclas especial:
~#
que listará as conexões como esta:
The following connections are open:
#3 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
#4 direct-tcpip: listening port 2222 for localhost port 22, connect from 127.0.0.1 port 59742 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)
Observe, no entanto, que isso listará apenas as portas encaminhadas que realmente estão sendo usadas por outro programa (nesse caso, acabei de fazer telnet localhost 2222
na minha máquina local para que ela seja encaminhada remotehost
.
Se você não possui nenhuma conexão que está sendo encaminhada no momento, ainda pode ver o que seu comando ssh está ouvindo localmente usando o netstat
comando da seguinte maneira:
% netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN 28995/ssh
tcp6 0 0 ::1:2222 :::* LISTEN 28995/ssh
O netstat
comando provavelmente também listará outras coisas, mas o que você deseja procurar na saída é a PID/Program
coluna para procurar ssh
processos e a Local Address
coluna que mostrará quais portas estão sendo ouvidas. Neste exemplo, ele está ouvindo port 2222
as interfaces IPv4 e IPv6 na minha máquina.
netstat
foi obsoleta a favor de ss
.