web-dev-qa-db-fra.com

Comment connaître les transferts actifs de ports ssh

J'ai configuré dans ~/.ssh/config plusieurs transferts de port pour VNC avec un port différent pour chaque serveur.

Existe-t-il une commande qui puisse m'aider à savoir sur quel port est redirigé lorsque j'ouvre une session SSH?

11
slc66

Si vous utilisez l'option -v avec ssh, cela vous montrera ce que vous transférez (mais cela vous montrera également d'autres messages de débogage):

ssh -v -L2222:localhost:22 remotehost

Vous montrera:

...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...

Et ensuite, lorsque vous êtes connecté à ce Shell distant, vous pouvez taper une séquence de touches spéciale:

~#

qui listera les connexions comme ceci:

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)

Notez, cependant, que cela ne listera que les ports transférés qui sont réellement utilisés par un autre programme (dans ce cas, je viens de copier telnet localhost 2222 sur ma machine locale pour le faire transférer à remotehost.

Si aucune connexion n'est actuellement en cours de transfert, vous pouvez toujours voir ce que votre commande ssh écoute localement en utilisant la commande netstat comme ceci:

% 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       

La commande netstat liste également probablement d'autres éléments, mais ce que vous souhaitez rechercher dans la sortie est la colonne PID/Program pour rechercher les processus ssh et la colonne Local Address qui vous indiquera quels ports sont écoutés. Dans cet exemple, il écoute port 2222 pour les interfaces IPv4 et IPv6 sur ma machine.

12
aculich