V této příručce se naučíme, jak zjednodušit proces pomocí možností, které nám poskytuje klient ssh, včetně použití SSH ProxyCommand
příkaz.
Související obsah:
- SSH – generování a práce s klíči ssh
Scénář SSH
Takto je nastaveno ssh.
+--------------+ +------------+ +-----------+
| Local machine| -> | JumpServer | -> | Dbserver |
+--------------+ +------------+ +-----------+
K DB serveru lze přistupovat pouze po přihlášení na zprostředkující server – Jump Server. Nejprve se přihlaste na jumpserver
ssh [email protected]
Poté se ze skokového serveru můžeme přihlásit na db server
ssh [email protected]
Použití volby -J pro nejnovější klienty ssh
U nejnovějších klientů ssh vám volba -J umožňuje určit, který hostitel se má použít jako hostitel skoku. Toto je formát
ssh -J [email protected] [email protected]
Takto se připojíte ke vzdálenému zařízení pomocí veřejného skokového serveru
ssh -J [email protected] [email protected]
Pokud musíte zadat klíč ssh, použijte tento formát:
ssh -J [email protected] [email protected] -i ~/.ssh/id_server_key
Použití ProxyCommand, když volba -J není dostupná
Ve starších verzích openssh je -J není k dispozici. Použijte tedy následující syntaxi:
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]
Takto používám na svém místním počítači
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa
Pro nejstarší klienty, kteří nepodporují volbu -W
V tomto případě ssh -tt příkaz. Místo zadávání dvou příkazů ssh mohu zadat následující příkaz all-in-one. To je užitečné pro připojení ke vzdálenému dbserveru přes firewall s názvem jumpserver jako hostitel skoku:
ssh -tt [email protected] ssh -tt [email protected]
Použití:
ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa
Kde:
- -t volba předaná příkazu ssh force alokace pseudo-tty. To lze použít ke spouštění libovolných programů na obrazovce na vzdáleném počítači. Více -tt volby vynutí alokaci tty, i když ssh nemá žádné místní tty.
Uložení konfigurace do souboru ~/.ssh/config
Možnosti konfigurace můžete definovat v ~/.ssh/config
soubor. Takto by vypadala konfigurace, zadáme ProxyCommand:
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh [email protected] -W %h:%p
IdentityFile ~/.ssh/id_rsa
Můžete také použít ProxyJump
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyJump [email protected]
IdentityFile ~/.ssh/id_rsa
Můžete také rekurzivně zřetězit více hostitelů skoků:
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
Tím dojde k proxy prostřednictvím ostatních hostitelů
ssh dbserver3