Jak Nastavit SSH Klíče na Ubuntu 16.04

Úvod

SSH nebo secure shell, je šifrovaný protokol používaný pro správu a komunikaci se servery. Při práci se serverem Ubuntu je pravděpodobné, že většinu času strávíte v relaci terminálu připojené k serveru přes SSH.

v této příručce se zaměříme na nastavení klíčů SSH pro instalaci vanilla Ubuntu 16.04. SSH klíče poskytují snadný a bezpečný způsob přihlášení na váš server a jsou doporučeny všem uživatelům.

Krok 1 — Vytvoření Páru Klíčů RSA

první krok je vytvořit pár klíčů na klientský počítač (obvykle váš počítač):

  • ssh-keygen

ve výchozím nastavení ssh-keygen vytvoří 2048-bit RSA pár klíčů, což je dostatečně bezpečné pro většinu případů použití (volitelně můžete projít v -b 4096 vlajka vytvořit větší 4096-bitový klíč).

po zadání příkazu byste měli vidět následující výstup:

Output
Generating public/private rsa key pair.Enter file in which to save the key (/your_home/.ssh/id_rsa):

Stisknutím tlačítka ENTER chcete uložit klíč spárovat do .ssh/ podadresář v domovském adresáři, nebo zadejte alternativní cestu.

Pokud jste již dříve vygenerovaných SSH klíčů dvojici, může se zobrazit následující řádek:

Output
/home/your_home/.ssh/id_rsa already exists.Overwrite (y/n)?

Pokud se rozhodnete k přepsání klíče na disk, nebudete moci ověřit pomocí předchozí klíč. Při výběru ano buďte velmi opatrní, protože se jedná o destruktivní proces, který nelze zvrátit.

zobrazí se následující výzva:

Output
Enter passphrase (empty for no passphrase):

zde můžete volitelně zadat zabezpečené přístupové heslo, které je velmi doporučeno. Přístupové heslo přidává další vrstvu zabezpečení, aby se zabránilo neoprávněným uživatelům v přihlášení. Chcete-li se dozvědět více o zabezpečení, přečtěte si náš návod, jak nakonfigurovat ověřování založené na SSH klíči na serveru Linux.

pak Byste měli vidět následující výstup:

Output
Your identification has been saved in /your_home/.ssh/id_rsa.Your public key has been saved in /your_home/.ssh/id_rsa.pub.The key fingerprint is:a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_hostThe key's randomart image is:+------+| ..o || E o= . || o. o || .. || ..S || o o. || =o.+. ||. =++.. ||o=++. |+-----------------+

nyní máte veřejný a soukromý klíč, které můžete použít k ověření. Dalším krokem je umístění veřejného klíče na server, abyste se mohli přihlásit pomocí autentizace založené na SSH klíči.

Krok 2-Zkopírujte veřejný klíč na server Ubuntu

nejrychlejší způsob, jak zkopírovat veřejný klíč do hostitele Ubuntu, je použít nástroj nazvaný ssh-copy-id. Vzhledem ke své jednoduchosti je tato metoda vysoce doporučena, pokud je k dispozici. Pokud nemáte ssh-copy-id k dispozici na klientském počítači, můžete použít jeden ze dvou alternativních metod uvedených v této sekci (kopírování přes SSH heslem bázi, nebo ruční kopírování klíče).

kopírování veřejného klíče pomocí ssh-copy-id

nástroj ssh-copy-id je standardně součástí mnoha operačních systémů, takže jej můžete mít k dispozici v místním systému. Aby tato metoda fungovala, musíte již mít k serveru přístup SSH založený na heslech.

Chcete-li nástroj použít, stačí zadat vzdáleného hostitele, ke kterému se chcete připojit, a uživatelský účet, ke kterému máte přístup SSH heslem. Toto je účet, na který bude zkopírován váš veřejný klíč SSH.

syntaxe je:

  • ssh-copy-id username@remote_host

může se zobrazit následující zpráva:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes

To znamená, že vaše místní počítač nerozpozná vzdáleného hostitele. To se stane při prvním připojení k novému hostiteli. Zadejte „Ano“a pokračujte stisknutím ENTER.

dále nástroj prohledá váš místní účet pro klíč id_rsa.pub, který jsme vytvořili dříve. Když najde klíč, vyzve vás k zadání hesla účtu vzdáleného uživatele:

Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new [email protected]'s password:

zadejte heslo (Vaše psaní se z bezpečnostních důvodů nezobrazí) a stiskněte ENTER. Nástroj se připojí k účtu na vzdáleném hostiteli pomocí zadaného hesla. To se pak zkopírujte obsah ~/.ssh/id_rsa.pub klíč do souboru na vzdáleném účtu je doma ~/.ssh adresář s názvem authorized_keys.

měli byste vidět následující výstup:

Output
Number of key(s) added: 1Now try logging into the machine, with: "ssh '[email protected]'"and check to make sure that only the key(s) you wanted were added.

v tomto okamžiku byl váš klíč id_rsa.pub nahrán na vzdálený účet. Můžete pokračovat ke kroku 3.

Kopírování Veřejný Klíč Pomocí SSH

Pokud nemáte ssh-copy-id k dispozici, ale máte heslo-based SSH přístup k účtu na vašem serveru, můžete nahrát své klíče pomocí konvenční SSH metoda.

můžeme to udělat pomocí cat příkaz číst obsah veřejného SSH klíče na našem počítači a potrubí, která přes SSH spojení ke vzdálenému serveru.

na druhé straně se můžeme ujistit, že adresář ~/.ssh existuje a má správná oprávnění pod účtem, který používáme.

pak můžeme výstup obsahu jsme piped přes do souboru s názvem authorized_keys v tomto adresáři. Použijeme symbol>> redirect k přidání obsahu místo jeho přepsání. To nám umožní přidat klíče bez zničení dříve přidaných klíčů.

úplný příkaz vypadá takto:

  • cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

můžete vidět následující zprávu:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes

to znamená, že váš místní počítač nerozpozná vzdáleného hostitele. To se stane při prvním připojení k novému hostiteli. Zadejte „Ano“a pokračujte stisknutím ENTER.

Poté, měli byste být vyzváni k zadání vzdáleného uživatelského účtu, heslo:

Output
[email protected]'s password:

Po zadání hesla, obsah id_rsa.pub klíčové budou zkopírovány do konce authorized_keys soubor ze vzdáleného uživatelského účtu. Pokračujte krokem 3, pokud to bylo úspěšné.

Ruční kopírování veřejného klíče

Pokud nemáte přístup SSH založený na heslech k serveru, budete muset výše uvedený proces dokončit ručně.

ručně přidat obsah id_rsa.pub soubor ~/.ssh/authorized_keys soubor na vzdáleném počítači.

Pro zobrazení obsahu id_rsa.pub klíč, zadejte do místního počítače:

  • cat ~/.ssh/id_rsa.pub

uvidíte, klíčový je obsah, který by měl vypadat nějak takhle:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

Přistupujte ke vzdálenému hostiteli pomocí jakékoli metody, kterou máte k dispozici.

jakmile budete mít přístup ke svému účtu na vzdáleném serveru, měli byste se ujistit, že existuje adresář ~/.ssh. Tento příkaz vytvoří adresář, pokud je to nutné, nebo dělat nic, pokud již existuje:

  • mkdir -p ~/.ssh

Nyní můžete vytvořit nebo upravit authorized_keys soubor v tomto adresáři. Můžete přidat obsah id_rsa.pub souboru na konec authorized_keys souboru, vytváří to, pokud je to nutné, pomocí tohoto příkazu:

  • echo public_key_string >> ~/.ssh/authorized_keys

V příkazu výše, nahradit public_key_string s výstupem z cat ~/.ssh/id_rsa.pub příkaz, který spustit na vašem místním systému. Mělo by začínat ssh-rsa AAAA....

nakonec zajistíme, aby soubor ~/.ssh a authorized_keys měl nastavená příslušná oprávnění:

  • chmod -R go= ~/.ssh

tím se rekurzivně odstraní všechna oprávnění“ group „A“ other “ pro adresář ~/.ssh/.

Pokud jste pomocí root účtu nastavit klíče pro uživatelský účet, je také důležité, aby ~/.ssh adresář patří uživateli, a ne, aby root:

  • chown -R sammy:sammy ~/.ssh

V této lekci se náš uživatel pojmenovaný sammy, ale ty by měly nahradit odpovídající uživatelské jméno na výše uvedený příkaz.

nyní se můžeme pokusit o autentizaci bez hesla pomocí našeho serveru Ubuntu.

Krok 3 — Ověření Ubuntu Server Pomocí SSH Klíče

Pokud jste úspěšně dokončili jeden z postupů výše uvedených, měli byste být schopni přihlásit se do vzdáleného hostitele bez dálkového účtu heslo.

základní proces je stejný:

  • ssh username@remote_host

Pokud se k tomuto hostiteli připojujete poprvé (pokud jste použili poslední metodu výše), můžete vidět něco takového:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes

to znamená, že váš místní počítač nerozpozná vzdáleného hostitele. Zadejte „Ano“a pokračujte stisknutím ENTER.

Pokud jste neposkytli přístupové heslo pro svůj soukromý klíč, budete okamžitě přihlášeni. Pokud jste při vytváření klíče zadali přístupové heslo pro soukromý klíč, budete vyzváni k jeho zadání (všimněte si, že stisknutí kláves se v relaci terminálu nezobrazí z důvodu zabezpečení). Po ověření by se vám měla otevřít nová relace shellu s nakonfigurovaným účtem na serveru Ubuntu.

Pokud byla autentizace založená na klíčích úspěšná, pokračujte a dozvíte se, jak systém dále zabezpečit zakázáním ověřování heslem.

Krok 4-zakažte ověřování heslem na serveru

Pokud jste se mohli přihlásit ke svému účtu pomocí SSH bez hesla, úspěšně jste nakonfigurovali ověřování založené na SSH klíči ke svému účtu. Váš ověřovací mechanismus založený na heslech je však stále aktivní, což znamená, že váš server je stále vystaven útokům hrubou silou.

Před dokončením kroků v této části, ujistěte se, že buď máte SSH-key autentizace na základě nakonfigurován pro účet root na tomto serveru, nebo nejlépe, že máte SSH-key autentizace na základě nakonfigurován pro non-root účtu na tomto serveru s sudo oprávnění. Tento krok uzamkne přihlašovací údaje založené na heslech, takže je zásadní zajistit, abyste stále měli přístup pro správu.

jakmile potvrdíte, že váš vzdálený účet má oprávnění správce, přihlaste se ke vzdálenému serveru pomocí klíčů SSH, buď jako root, nebo pomocí účtu s oprávněními sudo. Pak otevřete SSH daemon konfiguračního souboru:

  • sudo nano /etc/ssh/sshd_config

Uvnitř souboru, hledání směrnice se nazývá PasswordAuthentication. To může být komentováno. Odkomentujte řádek a nastavte hodnotu na „ne“. Tím se deaktivuje možnost Přihlášení přes SSH pomocí hesel účtu:

/etc/ssh/sshd_config
...PasswordAuthentication no...

Uložte a zavřete soubor, když jste hotovi, stisknutím tlačítka CTRLXY potvrďte uložení souboru, a konečně ENTER ukončete nano. Skutečně realizovat tyto změny, musíme restartovat sshd služby:

  • sudo systemctl restart ssh

Jako preventivní opatření, otevřít nové okno terminálu a test, který službu SSH funguje správně před uzavřením této relaci:

  • ssh username@remote_host

po ověření služby SSH můžete bezpečně ukončit všechny aktuální relace serveru.

démon SSH na vašem serveru Ubuntu nyní reaguje pouze na klíče SSH. Autentizace založená na heslech byla úspěšně deaktivována.

závěr

nyní byste měli mít na serveru nakonfigurováno ověřování založené na SSH klíči, které vám umožní přihlásit se bez zadání hesla k účtu.

Pokud se chcete dozvědět více o práci s SSH, podívejte se na našeho průvodce SSH Essentials.



Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.