Risposte:
Se usi l' -vopzione per sshmostrarti cosa stai inoltrando (ma ti mostrerà anche un sacco di altri messaggi di debug):
ssh -v -L2222:localhost:22 remotehost
Ti mostrerà:
...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 poi quando sei connesso a quella shell remota puoi digitare una sequenza di tasti speciale:
~#
che elencherà le connessioni in questo modo:
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)
Si noti, tuttavia, che questo elencherà solo le porte inoltrate che vengono effettivamente utilizzate da un altro programma (in questo caso ho appena fatto telnet localhost 2222sul mio computer locale per averlo inoltrato remotehost.
Se non si dispone di alcuna connessione attualmente inoltrata, è ancora possibile vedere ciò che il comando ssh sta ascoltando localmente utilizzando il netstatcomando in questo modo:
% 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
Il netstatcomando probabilmente elencherà anche altre cose, ma ciò che vuoi cercare nell'output è la PID/Programcolonna per cercare i sshprocessi e la Local Addresscolonna che ti mostrerà quali porte vengono ascoltate. In questo esempio è in ascolto port 2222per entrambe le interfacce IPv4 e IPv6 sulla mia macchina.
netstatè stato obsoleto a favore di ss.