In diesem Leitfaden erfahren wir, wie Sie den Prozess vereinfachen können, indem Sie die Optionen verwenden, die uns der ssh-Client bietet, einschließlich der Verwendung des SSH ProxyCommand
Befehl.
Verwandte Inhalte:
- SSH – Generieren und Arbeiten mit SSH-Schlüsseln
Das SSH-Szenario
So ist die ssh-Einrichtung.
+--------------+ +------------+ +-----------+
| Local machine| -> | JumpServer | -> | Dbserver |
+--------------+ +------------+ +-----------+
Auf den DB-Server kann nur zugegriffen werden, indem man sich beim Zwischenserver – Jump Server – anmeldet. Melden Sie sich zuerst beim Jumpserver an
ssh [email protected]
Dann können wir uns vom Jump-Server beim DB-Server anmelden
ssh [email protected]
Verwendung der Option -J für neueste SSH-Clients
Bei den neuesten ssh-Clients können Sie mit der Option -J angeben, welcher Host als Jump-Host verwendet werden soll. Dies ist das Format
ssh -J [email protected] [email protected]
So stellen Sie über einen öffentlichen Jump-Server eine Verbindung zum Remote her
ssh -J [email protected] [email protected]
Wenn Sie einen SSH-Schlüssel angeben müssen, verwenden Sie dieses Format:
ssh -J [email protected] [email protected] -i ~/.ssh/id_server_key
ProxyCommand verwenden, wenn die Option -J nicht verfügbar ist
In älteren Versionen von openssh ist das -J ist nicht verfügbar. Verwenden Sie also die folgende Syntax:
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]
So verwende ich es auf meinem lokalen Rechner
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa
Für die ältesten Clients, die die Option -W nicht unterstützen
In diesem Fall das ssh -tt Befehl. Anstatt zwei ssh-Befehle einzugeben, kann ich den folgenden All-in-One-Befehl eingeben. Dies ist nützlich, um sich über eine Firewall mit dem Namen jumpserver als Sprunghost mit einem entfernten Datenbankserver zu verbinden:
ssh -tt [email protected] ssh -tt [email protected]
Verwendung:
ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa
Wo:
- Das -t Option, die an den ssh-Befehl übergeben wird, um die Pseudo-TTY-Zuweisung zu erzwingen. Dies kann verwendet werden, um beliebige bildschirmbasierte Programme auf einem entfernten Rechner auszuführen. Mehrere -tt Optionen erzwingen eine tty-Zuweisung, auch wenn ssh kein lokales tty hat.
Speichern der Konfiguration in der Datei ~/.ssh/config
Sie können die Konfigurationsoptionen in ~/.ssh/config
definieren Datei. So würde die Konfiguration aussehen, wir geben den ProxyCommand:
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh [email protected] -W %h:%p
IdentityFile ~/.ssh/id_rsa
Sie können auch ProxyJump
verwendenHost dbserver
Hostname 10.70.1.190
User ubuntu
ProxyJump [email protected]
IdentityFile ~/.ssh/id_rsa
Sie können auch mehrere Sprunghosts rekursiv verketten:
Host jumpsrver
Hostname 13.36.234.247
User rocky
Host dbserver2
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p jumpsrver
IdentityFile ~/.ssh/id_rsa
Host dbserver3
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p dbserver2
IdentityFile ~/.ssh/id_rsa
Dadurch wird über die anderen Hosts geproxyt
ssh dbserver3