GNU/Linux >> Znalost Linux >  >> Linux

Jak ssh přes hostitele (jumpserver) dosáhnout jiného serveru

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

Linux
  1. Jak na SSH na Linuxu z Androidu

  2. Jak zvýšit časový limit připojení SSH

  3. Ssh – Jak se připojit k počítači přes jiný počítač pomocí Ssh?

  1. Ssh – tunelový provoz přes jiný stroj přes Ssh?

  2. Jak směrovat internet přes Ssh tunel?

  3. Jak nastavit SSH bez hesla v systému Linux

  1. Jak vytvořit virtuální hostitele Nginx (blok serveru)

  2. Jak SSH na server pomocí jiného serveru?

  3. Jak ssh jako jiný uživatel