GNU/Linux >> Znalost Linux >  >> Linux

SSH – Generování a práce s ssh klíči

SSH je zabezpečený protokol používaný jako primární prostředek pro vzdálené připojení k serverům Linux. Poskytuje textové rozhraní vytvořením vzdáleného shellu. Po připojení jsou všechny příkazy, které zadáte na místním terminálu, odeslány na vzdálený server a tam provedeny.

Ověření

Klienti se obecně ověřují buď pomocí hesel nebo klíčů SSH. Hesla jsou méně bezpečná, proto se vždy doporučují klíče ssh.

Pro ověření pomocí klíčů SSH musí mít uživatel na svém místním počítači pár klíčů SSH. Na vzdáleném serveru musí být veřejný klíč zkopírován do souboru v domovském adresáři uživatele na adrese ~/.ssh/authorized_keys . Tento soubor obsahuje seznam veřejných klíčů, jeden na řádek, které jsou oprávněny se přihlásit k tomuto účtu.

Generování páru klíčů SSH

Vygenerovat kombinaci hospodských/soukromých klíčů

ssh-keygen

# With options (Larger Number of Bits 4096 and file name)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix

# Explicit comment
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_citizix -C citizix_key

Výše uvedené příkazy vygenerují pár klíčů RSA SSH. Pokud umístění souboru není zadáno, budou umístěny v .ssh skrytý adresář v domovském adresáři vašeho uživatele. Výchozí soubory jsou:

  • ~/.ssh/id_rsa :Soukromý klíč. NESDÍLEJTE TENTO SOUBOR!
  • ~/.ssh/id_rsa.pub :Přidružený veřejný klíč. To lze volně sdílet bez následků.

Odebrání nebo změna přístupové fráze u soukromého klíče

Pokud jste pro svůj soukromý klíč vygenerovali přístupovou frázi a chcete ji změnit nebo odstranit, použijte následující příkazy:

ssh-keygen -p

ssh-keygen -p -f ~/.ssh/id_citizix

Zadejte starou přístupovou frázi, kterou chcete změnit. Poté budete vyzváni k zadání nové přístupové fráze, nebo stačí stisknout Enter a nechat prázdné.

Zkontrolujte otisk klíče SSH

Každý pár klíčů SSH sdílí jeden kryptografický „otisk“, který lze použít k jedinečné identifikaci klíčů. Chcete-li zjistit otisk klíče SSH, zadejte:

ssh-keygen -l

ssh-keygen -l -f ~/.ssh/id_citizix

Kopírování vašeho veřejného klíče SSH na server

Zkopírování veřejného klíče na vzdálený server umožní přihlášení bez hesla:

# This will prompt for a password
ssh-copy-id [email protected]_host

Po zadání hesla bude obsah vašeho klíče ~/.ssh/id_rsa.pub připojen na konec souboru ~/.ssh/authorized_keys uživatelského účtu. Nyní se můžete přihlásit bez hesla:ssh [email protected]_host

Kopírování vašeho veřejného klíče SSH na server bez SSH-Copy-ID

Pokud nemáte k dispozici nástroj ssh-copy-id, ale přesto máte přístup SSH ke vzdálenému serveru na základě hesla, můžete zkopírovat obsah svého veřejného klíče jiným způsobem.

  1. Zkopírujte obsah do spodní části ~/.ssh/authorized_keys vzdáleného serveru soubor.

  2. Můžete vypsat obsah klíče a přenést jej do příkazu ssh. Připojit k ~/.ssh/authorized_keys soubor.

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Další hacky

Vygenerujte veřejný klíč ssh ze soukromého klíče:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Spuštění jednoho příkazu na vzdáleném serveru

ssh [email protected]_host command_to_run

Přihlášení k serveru s jiným portem

ssh -p port_num [email protected]_host

Pomocí konfiguračního souboru:

# File ~/.ssh/config
Host remote_alias
    HostName remote_host
    Port port_num

Přidání klíčů SSH do agenta SSH, abyste se vyhnuli psaní přístupové fráze

Pokud máte na svém soukromém klíči SSH přístupovou frázi, budete k jejímu zadání vyzváni pokaždé, když ji použijete pro připojení ke vzdálenému hostiteli.

Abyste to nemuseli opakovat, můžete spustit agenta SSH. Tento malý nástroj uloží váš soukromý klíč poté, co poprvé zadáte heslo. Bude k dispozici po dobu trvání vaší relace terminálu, což vám umožní připojit se v budoucnu bez opětovného zadávání přístupové fráze.

Chcete-li spustit agenta SSH, zadejte do relace místního terminálu následující:

eval $(ssh-agent)

Nyní přidejte svůj soukromý klíč k agentovi, aby mohl spravovat váš klíč:

ssh-add

ssh-add -f ~/.ssh/id_citizix

Budete muset zadat své přístupové heslo (pokud je nastaveno). Poté bude váš soubor identity přidán do agenta, což vám umožní používat váš klíč k přihlášení, aniž byste museli znovu zadávat přístupové heslo.

Přeposlání vašich přihlašovacích údajů SSH k použití na serveru

Pokud se chcete připojit bez hesla k jednomu serveru z jiného serveru, budete muset předat informace o klíči SSH. To vám umožní ověřit se na jiném serveru prostřednictvím serveru, ke kterému jste připojeni, pomocí přihlašovacích údajů na vašem místním počítači.

Musíte mít spuštěného agenta SSH a váš klíč SSH přidán k agentovi. Poté se připojte k prvnímu serveru pomocí volby -A k předání vašich přihlašovacích údajů na server pro tuto relaci

ssh -A [email protected]_host

Linux
  1. Jak používat klíče SSH s Plesk

  2. Jak vygenerovat pár klíčů SSH (s příklady)

  3. Jak nastavit klíče SSH

  1. Jak se připojit k ssh serveru pomocí plink a cmd a veřejného klíče

  2. Jak přenést své klíče SSH na jiný počítač?

  3. Vygenerujte pár SSH pomocí AES-256-CBC

  1. Ssh – rozdíl mezi klíčem Openssh a klíčem Putty?

  2. Začínáme s SSH v Linuxu

  3. Jak nastavit klíče SSH na Ubuntu 18.04