SSH malé triky

Tento článek obsahuje naše doporučené postupy pro efektivnější používání SSH. V něm se dozvíte, jak:

  • Přidejte druhý faktor k přihlášení SSH
  • Bezpečně používejte přesměrování agentů
  • Odhlaste se z přerušené relace SSH
  • Udržujte trvalý terminál otevřený
  • Sdílejte relaci vzdáleného terminálu s přítelem (bez zoomu!)

Přidání druhého faktoru do vašeho SSH

K připojení SSH můžete přidat druhý faktor ověřování pěti různými způsoby:

  1. Aktualizujte svůj OpenSSH a použijte šifrovací klíč. V únoru 2020 přidal OpenSSH podporu pro šifrovací klíče FIDO U2F (Universal Second Factor). Toto je skvělá nová funkce, ale je tu jedno upozornění: šifrovací klíče budou moci používat pouze klienti a servery, kteří se aktualizovali na OpenSSH 8.2 a vyšší, protože únorová aktualizace pro ně zavádí nové typy klíčů. Tým ssh –V můžete zkontrolovat verzi klienta SSH a verzi serveru pomocí příkazu nc [servername] 22

    Do únorové verze byly přidány dva nové typy klíčů - ecdsa-sk a ed25519-sk (spolu s odpovídajícími certifikáty). Chcete-li vygenerovat soubor klíče, stačí vložit svůj šifrovací klíč a spustit příkaz:
    $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk

    Vygeneruje veřejné a soukromé klíče a spojí je s vaším zařízením U2F. Úkolem tajného klíče na zařízení U2F je dešifrovat deskriptor tajného klíče na disku, když je šifrovací klíč aktivován.

    Kromě toho můžete jako sekundární faktor zadat přístupovou frázi pro své klíče.

    Rezidentní klíč je další typ generování klíče -sk podporovaný OpenSSH. S tímto přístupem je rukojeť uložena na zařízení U2F a umožňuje vám ji mít s šifrovacím klíčem v případě potřeby. Rezidentní klíč můžete vytvořit příkazem:

    $ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk

    Poté, chcete-li vrátit rukojeť do paměti nového zařízení, vložte šifrovací klíč a spusťte příkaz:

    $ ssh-add -K

    Při připojování k hostiteli budete stále muset aktivovat šifrovací klíč.

  2. Použijte PIV+PKCS11 a Yubikey. Připojení k zařízením se staršími verzemi SSHD pomocí šifrovacího klíče bude vyžadovat jiný přístup. Yubico má průvodce používáním U2F+SSH s PIV/PKCS11. To není totéž jako FIDO U2F, a přestože metoda funguje, dá hodně práce zjistit, jaké kouzlo ji pohání.
  3. Použít vlastního agenta yubikey-agent ssh. Filippo Valsorda napsal agenta SSH pro Yubikeys. Je zcela nový a obsahuje minimum funkcí.
  4. Použijte Touch ID a sekey. Sekey je agent SSH s otevřeným zdrojovým kódem, který ukládá soukromé klíče v zabezpečené enklávě na Macu a umožňuje použití Touch ID pro přístupové funkce.
  5. Použijte jednotné přihlášení přes SSH. Napsal jsem tutoriál, který vám pomůže nastavit tuto metodu. Jednou z výhod jednotného přihlášení na SSH je možnost využít bezpečnostní zásady vašeho poskytovatele identity – včetně podpory vícefaktorové autentizace (MFA).

Bezpečné používání agent forwardingu

Přesměrování agenta SHH umožňuje vzdálenému hostiteli přístup k agentovi SSH vašeho místního zařízení. Když používáte SSH s povoleným přesměrováním agenta (obvykle přes ssh -A), budou na připojení dva kanály: vaše interaktivní relace a kanál pro přesměrování agenta. Prostřednictvím tohoto kanálu se Unixový soket vytvořený vaším místním agentem SSH připojuje ke vzdálenému hostiteli. Toto je riskantní metoda, protože uživatel s přístupem root na vzdáleném zařízení by mohl získat přístup k vašemu místnímu agentovi SSH a potenciálně se za vás vydávat online. Při použití standardního SSH agenta ze sady Open SSH ani nepoznáte, že se to stalo. Mít klíč U2F (nebo Sekey) vám pomůže účinně blokovat jakékoli pokusy o použití vašeho agenta SSH zvenčí.

I přes toto opatření je dobré přesměrování agentů využívat co nejméně. Neměli byste jej používat pro každou relaci – přesměrování agenta používejte pouze tehdy, když jste si jisti, že je pro aktuální relaci potřeba.

Ukončení pozastavené relace

Přerušení sítě, chování programů mimo kontrolu nebo úniková sekvence, která blokuje vstup z klávesnice, to vše jsou možné příčiny ukončení relace SSH.

Existuje několik způsobů, jak ukončit zavěšenou relaci:

  1. Automaticky ukončit, když je síť přerušena. Do souboru .ssh/config musíte přidat následující:
    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh odešle vzdálenému hostiteli každou sekundu ServerAliveInterval echo, aby zkontroloval připojení. Pokud neobdrží odpověď více než ServerAliveCountMax, ssh vyprší časový limit připojení a ukončí relaci.

  2. Odejít z relace. ssh standardně používá znak ~ (tilda) jako svůj řídicí znak. Tým~. zavře otevřené spojení a vrátí vás zpět k terminálu. (Únikové sekvence lze zadat pouze na nový řádek.) Tlačítko ~? zobrazí úplný seznam příkazů dostupných v této relaci. Vezměte prosím na vědomí, že pro zadání znaku ~ na mezinárodní klávesnici může být nutné stisknout klávesu ~ dvakrát.

Proč k zmrazeným relacím vůbec dochází? Když byl internet vytvořen, počítače se jen zřídka stěhovaly z místa na místo. Když používáte notebooky a přepínáte mezi více IPv4 WiFi sítěmi, vaše IP adresa se změní. Vzhledem k tomu, že SSH se spoléhá na připojení TCP, která zase spoléhají na koncový bod se stabilní IP adresou, kdykoli přepnete mezi sítěmi, vaše připojení SSH minou úchyt soketu a sama se fakticky ztratí. Když se změní vaše IP adresa, chvíli trvá, než síťový zásobník zjistí ztrátu úchytu. Když nastanou problémy se sítí, nechceme, aby je některý z uzlů na TCP spojení ukončil příliš brzy. Proto se protokol pokusí data odeslat ještě několikrát, než to nakonec vzdá. Mezitím ve vašem terminálu bude relace vypadat jako zmrazená. IPv6 přidává několik funkcí souvisejících s mobilitou, které umožňují zařízení zachovat si domácí adresu při změně sítě. Snad to jednoho dne nebude takový problém.

Jak udržet trvalý terminál otevřený na vzdáleném hostiteli

Existují dva různé přístupy k tomu, jak zachovat připojení, když se pohybujete mezi různými sítěmi nebo se chcete na chvíli odpojit.

1. Využijte výhody Mosh nebo Věčný terminál

Pokud opravdu potřebujete připojení, které nevypadne ani při přepínání mezi sítěmi, použijte Mosh mobile shell. Jedná se o zabezpečený shell, který nejprve používá handshake SSH a poté se po dobu trvání relace přepne na svůj vlastní šifrovaný kanál. Takto Mosh vytváří samostatný, velmi odolný a bezpečný kanál, který vydrží výpadky internetu, změnu IP adresy vašeho notebooku, vážné výpadky sítě a mnoho dalšího, a to vše také díky kouzlu UDP připojení. jako synchronizační protokol Mosh.

Chcete-li používat Mosh, budete jej muset nainstalovat na klienta i server a otevřít porty 60000-61000 pro nepřipojený provoz UPD na váš vzdálený hostitel. V budoucnu pro připojení bude stačit používat mosh user@server.

Mosh funguje na úrovni obrazovek a stisku kláves, což mu dává řadu výhod oproti odesílání binárního proudu standardního vstupu a výstupu mezi klientem a SSH serverem. Pokud potřebujeme pouze synchronizovat obrazovky a stisky kláves, pak je pozdější obnovení přerušeného připojení mnohem jednodušší. Zatímco SSH ukládá do vyrovnávací paměti a odesílá vše, co se stalo, Mosh potřebuje pouze ukládat stisknuté klávesy a synchronizovat poslední snímek okna terminálu s klientem.

2. Použijte tmux

Pokud chcete „přicházet a odcházet, jak chcete“ a udržovat terminálovou relaci na vzdáleném hostiteli, použijte terminálový multiplexer tmux. Miluju tmux a používám ho pořád. Pokud je vaše připojení SSH přerušeno, pak se pro návrat do relace tmux stačí znovu připojit a zadat tmux attach. Kromě toho má takové skvělé funkce, jako jsou karty a panely v rámci terminálu, podobné kartám v terminálu iOS, a možnost sdílet terminály s ostatními.

Někteří lidé si rádi vylepší svůj tmux pomocí Byobu, balíčku, který výrazně zlepšuje použitelnost tmuxu a přidává mnoho klávesových zkratek. Byobu je dodáván s Ubuntua snadno se instaluje na Mac přes Homebrew.

Sdílení relace vzdáleného terminálu s přítelem

Někdy při ladění složitých problémů na serverech možná budete chtít sdílet relaci SSH s někým, kdo není ve stejné místnosti jako vy. tmux je pro tento úkol ideální! Zabere to jen pár kroků:

  1. Ujistěte se, že je tmux nainstalován na vašem uzlu bastion nebo na jakémkoli serveru, se kterým budete pracovat.
  2. Oba budete muset připojit SSH do zařízení pomocí stejného účtu.
  3. Jeden z vás musí používat tmux, aby mohl zahájit relaci tmux.
  4. Druhý by měl spustit tmux attachment
  5. Voila! Máte sdílený terminál.

Pokud chcete sofistikovanější víceuživatelské relace tmux, vyzkoušejte tmate, větev tmux, která značně usnadňuje sdílené terminálové relace.

Zdroj: www.habr.com

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster