Ich habe in ~/.ssh/config
vielen Portweiterleitungen für VNC unterschiedliche Ports für jeden Server konfiguriert .
Gibt es einen Befehl, mit dem ich feststellen kann, an welchen Port beim Öffnen einer SSH-Sitzung weitergeleitet wird?
quelle
Ich habe in ~/.ssh/config
vielen Portweiterleitungen für VNC unterschiedliche Ports für jeden Server konfiguriert .
Gibt es einen Befehl, mit dem ich feststellen kann, an welchen Port beim Öffnen einer SSH-Sitzung weitergeleitet wird?
Wenn Sie die -v
Option verwenden, ssh
wird angezeigt, was Sie weiterleiten (es werden jedoch auch eine Reihe anderer Debug-Meldungen angezeigt):
ssh -v -L2222:localhost:22 remotehost
Wird dir zeigen:
...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...
Wenn Sie dann mit dieser Remote-Shell verbunden sind, können Sie eine spezielle Tastenfolge eingeben:
~#
Hier werden die Verbindungen wie folgt aufgelistet:
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)
Beachten Sie jedoch, dass hier nur weitergeleitete Ports aufgelistet werden, die tatsächlich von einem anderen Programm verwendet werden (in diesem Fall habe ich es gerade telnet localhost 2222
auf meinem lokalen Computer getan , um es weiterleiten zu lassen remotehost
.
Wenn Sie keine Verbindungen haben, die gerade weitergeleitet werden, können Sie mithilfe des folgenden netstat
Befehls immer noch sehen, worauf Ihr ssh-Befehl lokal wartet :
% 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
Der netstat
Befehl listet wahrscheinlich auch andere Dinge auf, aber was Sie in der Ausgabe suchen möchten, ist die PID/Program
Spalte, in der nach ssh
Prozessen gesucht werden soll, und die Local Address
Spalte , in der angezeigt wird, welche Ports abgehört werden. In diesem Beispiel werden port 2222
sowohl IPv4- als auch IPv6-Schnittstellen auf meinem Computer überwacht.