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