GNU/Linux >> Znalost Linux >  >> Linux

SSH ke vzdáleným hostitelům přes proxy nebo bastion s ProxyJump

Koncept bastionových hostitelů není ve výpočetní technice ničím novým. Baston hostitelé jsou obvykle veřejně přístupné, odolné systémy, které slouží jako vstupní bod k systémům za firewallem nebo jiným omezeným místem, a jsou obzvláště oblíbené s rozmachem cloud computingu.

ssh Command má snadný způsob, jak využít hostitele bastion k připojení ke vzdálenému hostiteli pomocí jediného příkazu. Namísto prvního SSH na hostitele bastion a poté pomocí ssh na baště pro připojení ke vzdálenému hostiteli ssh může sám vytvořit počáteční a druhé připojení pomocí ProxyJump .

ProxyJump

ProxyJump nebo -J flag, byl zaveden v ssh verze 7.3. Chcete-li jej použít, zadejte hostitele bastionu, přes který se chcete připojit, za -J příznak plus vzdálený hostitel:

$ ssh -J <bastion-host> <remote-host>

Můžete také nastavit konkrétní uživatelská jména a porty, pokud se mezi hostiteli liší:

$ ssh -J user@<bastion:port> <user@remote:port>

ssh man (nebo manuálová) stránka (man ssh ) poznamenává, že lze zadat více názvů hostitelů oddělených čárkami, aby bylo možné přeskakovat řadu hostitelů:

$ ssh -J <bastion1>,<bastion2> <remote>

Tato funkce je užitečná, pokud existuje několik úrovní oddělení mezi baštou a konečným vzdáleným hostitelem. Například veřejný hostitel bašty poskytující přístup k sadě hostitelů „webové vrstvy“, v rámci které je možné přistupovat k další chráněné skupině „databázové vrstvy“.

Pevně ​​kódování hostitelů proxy v ~/.ssh/config

-J flag poskytuje flexibilitu pro snadnou specifikaci proxy a vzdálených hostitelů podle potřeby, ale pokud se pro připojení ke konkrétnímu vzdálenému hostiteli pravidelně používá konkrétní bastionový hostitel, ProxyJump konfiguraci lze nastavit v ~/.ssh/config pro automatické navázání spojení s baštou na cestě ke vzdálenému hostiteli:

### The Bastion Host
Host bastion-host-nickname
  HostName bastion-hostname

### The Remote Host
Host remote-host-nickname
  HostName remote-hostname
  ProxyJump bastion-host-nickname

Pomocí příkladu konfigurace výše, když ssh připojení je provedeno takto:

$ ssh remote-host-nickname

ssh příkaz nejprve vytvoří připojení k hostiteli bastion bastion-hostname (hostitel odkazovaný přezdívkou v ProxyJump vzdáleného hostitele nastavení) před připojením ke vzdálenému hostiteli.

Alternativa:Přeposílání stdin a stdout

ProxyJump je zjednodušený způsob použití funkce ssh má již dlouhou dobu: ProxyCommand . ProxyCommand funguje tak, že přesměruje standardní vstup (stdin) a standardní výstup (stdout) ze vzdáleného počítače prostřednictvím hostitelů proxy nebo bastion.

ProxyCommand sám o sobě je specifický příkaz používaný k připojení ke vzdálenému serveru – v případě předchozího příkladu by to byl manuál ssh příkaz použitý k prvnímu připojení k baště:

$ ssh -o ProxyCommand="ssh -W %h:%p bastion-host" remote-host

%h:%p argumenty do -W příznak výše specifikujte pro předání standardu dovnitř a ven vzdálenému hostiteli (%h ) a port vzdáleného hostitele (%p ).

ProxyCommand v ~/.ssh/config

Stejně jako u ProxyJump , ProxyCommand lze nastavit v ~/.ssh/config soubor pro hostitele, kteří vždy používají tuto konfiguraci:

Host remote-host
  ProxyCommand ssh bastion-host -W %h:%p

S tímto nastavením v ~/.ssh/config , libovolný ssh připojení ke vzdálenému hostiteli se provádí předáváním stdin a stdout prostřednictvím zabezpečeného připojení z bastion-host .

ssh příkaz je mocný nástroj. I když se většinou používá ve své nejjednodušší podobě, ssh user@hostname , existují doslova desítky použití s ​​příznaky a konfiguracemi pro navazování spojení z jednoho hostitele na druhého. Podívejte se na ssh manuálová stránka (man ssh ) někdy objevíte všechny různé možnosti, které tento zdánlivě jednoduchý program nabízí.


Linux
  1. Git Remote Add s jiným portem SSH (ne 22)

  2. Ssh – jak se vyhnout žádosti Ssh o povolení?

  3. Ssh – Scp přes více hostitelů?

  1. SSH – „IDENTIFIKACE VZDÁLENÉHO HOSTITELE SE ZMĚNILA“

  2. zkontrolujte, zda soubor existuje na vzdáleném hostiteli pomocí ssh

  3. Jak se mohu vyhnout ověření hostitele SSH pro známé hostitele?

  1. Jak nakonfigurovat vlastní připojení SSH pro zjednodušení vzdáleného přístupu

  2. Jak mohu použít SSH s proxy SOCKS 5?

  3. SSH připojení přes reverzní (vzdálený) SSH tunel