Das ist eine Antwort, die ich auf eine Frage zur Portweiterleitung bekommen habe, aber ich bin nicht sicher, was sie bedeutet.
$ ssh lab_desktop -L 2200:lab_server:22 -vvv
meine wilde Vermutung:
Stellen Sie zuerst eine Verbindung zu lab_desktop her und melden Sie sich dann erneut beim lab_server (Port 22) an. Die von dieser Verbindung empfangenen Daten werden an lab_desktop, Port 2200, weitergeleitet.
ist meine wilde Vermutung richtig??
aber ich verstehe immer noch nicht, was dieses „-vvv“ bedeutet …
Update nach Anwendung der Antwort:
okay mit Creeks hilfreicher Antwort und Kommentaren, ich habe getan, was ich konnte, damit Creeks Antwort funktioniert
Lassen Sie mich noch einmal die Terminologie klarstellen
mypc
- derjenige, der die ganze Tipparbeit erledigt
lab_desktop
- SSH-Server
lab_server
- endgültiges Ziel, mit dem ich kommunizieren möchte. Dieser Server lässt nur Verbindungen von zu lab_desktop
. Und noch etwas: Er lässt nur Verbindungen über Port 122 zu.
okay, da für die Anmeldung bei lab_desktop
und lab_server
Benutzername und Passwort erforderlich sind, habe ich einfach eine RSA-Authentifizierung für mypc
– lab_desktop
und lab_desktop
– eingerichtet lab_server
, damit ich nicht ständig mit der Eingabe des Passworts konfrontiert werde und um die Möglichkeit auszuschließen, dass die Eingabe des Passworts den SSH-Befehl komplizierter macht.
Danach habe ich den Befehl verwendet:
ssh Black@lab_desktop -v -L 2200:lab_server:122
das Folgende ist die Ausgabe
chulhyun@chulhyun-Inspiron-3420:~/.ssh$ ssh Black@$labcom -v -L 2200:143.248.146.204:122
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 143.248.143.198 [143.248.143.198] port 22.
debug1: Connection established.
debug1: identity file /home/chulhyun/.ssh/id_rsa type -1
debug1: identity file /home/chulhyun/.ssh/id_rsa-cert type -1
debug1: identity file /home/chulhyun/.ssh/id_dsa type -1
debug1: identity file /home/chulhyun/.ssh/id_dsa-cert type -1
debug1: identity file /home/chulhyun/.ssh/id_ecdsa type -1
debug1: identity file /home/chulhyun/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 79:64:5d:e7:ac:78:b7:52:3d:9a:6a:3b:c1:37:a0:2d
debug1: Host '143.248.143.198' is known and matches the ECDSA host key.
debug1: Found key in /home/chulhyun/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/chulhyun/.ssh/id_rsa
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to 143.248.143.198 ([143.248.143.198]:22).
debug1: Local connections to LOCALHOST:2200 forwarded to remote address 143.248.146.204:122
debug1: Local forwarding listening on ::1 port 2200.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 2200.
debug1: channel 1: new [port listener]
debug1: channel 2: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = ko_KR.UTF-8
Last login: Tue Jun 24 16:47:27 2014 from 143.248.244.12
Black@Black-PC ~
$
es ist lang, aber ich schätze, das Einzige, worauf ich achten sollte, sind die Zeilen:
debug1: Local connections to LOCALHOST:2200 forwarded to remote address 143.248.146.204:122
debug1: Local forwarding listening on ::1 port 2200.
wenn ich netstat verwende um zu sehen ob das stimmt( netstat -tulpn | grep 2200
), ist die Ausgabe:
root@chulhyun-Inspiron-3420:/etc/ssh# netstat -tulpn | grep 2200
tcp 0 0 127.0.0.1:2200 0.0.0.0:* LISTEN 14966/ssh
tcp6 0 0 ::1:2200 :::* LISTEN 14966/ssh
also denke ich, dass das SSH-Hopping nun doch eingerichtet ist.
Das Problem tritt jetzt auf, wenn ich versuche, Port 2200 zu verwenden mypc
. Wie Creek vorgeschlagen hat, muss ich diesen Port ausnutzen, also habe ich versucht, mich sowohl mit meinem Root-Konto als auch mit meinem Benutzerkonto anzumelden, aber das Ergebnis war ein Fehler aufgrund des Passworts.
chulhyun@chulhyun-Inspiron-3420:~$ su
password:
root@chulhyun-Inspiron-3420:/home/chulhyun# ssh root@localhost -p 2200
root@localhost's password:
Permission denied, please try again.
root@localhost's password:
root@chulhyun-Inspiron-3420:/home/chulhyun# exit
exit
chulhyun@chulhyun-Inspiron-3420:~$ ssh chulhyun@localhost -p 2200
chulhyun@localhost's password:
Permission denied, please try again.
Die Passwörter sind die richtigen, da bin ich mir sicher. Aber ich verstehe nicht, warum es nicht funktioniert...
Ich bin an diesem Punkt angelangt. Könnten Sie mir helfen, noch weiter zu kommen?
aktualisieren
Das neue Problem, mit dem ich konfrontiert bin, wird hier besprochen und gelöst:Linux kann beim SSH das richtige Passwort nicht erkennen?
Antwort1
ssh lab_desktop -L 2200:lab_server:22 -vvv
ssh lab_desktop
- Erstellen Sie eine SSH-Verbindung zulab_desktop
as$USER
-L 2200:lab_server:22
- bei der Verbindung zulab_desktop
, leiten Sie Port 2200 auf der lokalen Maschine an Port 22 weiterlab_server
-vvv
- Aktivieren Sie die maximale Ausführlichkeitsstufe
Dieser Befehl öffnet auf Ihrem lokalen Computer einen Socket auf Port 2200. Anschließend wird mithilfe eines SSH-Tunnels der gesamte an Port 2200 auf dem lokalen Host gesendete Datenverkehr an Port 22 auf dem Lab_Server WEITERGELEITET.
Um Ihren weitergeleiteten Port zu nutzen und eine SSH-Verbindung zum Lab_Server herzustellen, müssen Sie eine zweite Verbindung herstellen, bei der Sie eine Verbindung zum lokalen Port auf dem lokalen Host herstellen:
ssh user@localhost -p 2200
Antwort2
ssh -L 2200:lab_server:22 -vvv lab_desktop
wird Folgendes tun:
Es ist auf der maximalen Ebene (3) ausführlich, d. h. es werden debug level 3
Informationen gedruckt. Ein Beispiel ist:
debug3: channel 0: will not send data after close
Damit -L
können Sie Ihre Daten über den angegebenen Port 2200
auf Ihrer Seite lab_desktop
zum lab_server
On-Port tunneln 22
.
Wenn Sie also eine Verbindung mit lab_desktop
Port herstellen 2200
, erhalten Sie Daten vom lab_server
Port 22
.
Eine gute Quelle für SSH-Portweiterleitung istHier.
Antwort3
http://www.explainshell.com/explain?cmd=ssh+lab_desktop+-L+2200%3Alab_server%3A22+-vvv
Wenn die Website nicht erreichbar ist, können Sie Ihre eigene Version ausführen
https://github.com/idank/explainshell
Auszug aus der Website