GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit klíče SSH na Ubuntu 20.04

Secure Shell (SSH) je síťový protokol pro vytvoření zabezpečeného spojení mezi klientem a serverem. Pomocí SSH můžete spouštět příkazy na vzdálených počítačích, vytvářet tunely, dopředné porty a další.

SSH podporuje různé autentizační mechanismy. Dvěma nejběžnějšími jsou autentizace na základě hesla a veřejného klíče.

Autentizace pomocí veřejného klíče je založena na použití digitálních podpisů a je bezpečnější a pohodlnější než tradiční ověřování heslem.

Tento článek vysvětluje, jak generovat klíče SSH na systémech Ubuntu 20.04. Také vám ukážeme, jak nastavit ověřování založené na klíči SSH a připojit se ke vzdáleným serverům Linux bez zadávání hesla.

Vytváření klíčů SSH na Ubuntu #

Je pravděpodobné, že na klientském počítači Ubuntu již máte pár klíčů SSH. Pokud vygenerujete nový pár klíčů, starý bude přepsán. Chcete-li zkontrolovat, zda soubory klíčů existují, spusťte následující ls příkaz:

ls -l ~/.ssh/id_*.pub

Pokud příkaz vrátí něco jako No such file or directory nebo no matches found , znamená to, že uživatel nemá klíče SSH a můžete pokračovat dalším krokem a vygenerovat pár klíčů SSH. V opačném případě, pokud máte pár klíčů SSH, můžete buď stávající, nebo zálohovat staré klíče a vygenerovat pár nový.

Chcete-li vygenerovat nový 4096bitový pár klíčů SSH s vaší e-mailovou adresou jako komentář, spusťte:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Budete vyzváni k zadání názvu souboru:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Výchozí umístění a název souboru by měly být pro většinu uživatelů v pořádku. Stiskněte Enter přijmout a pokračovat.

Dále budete požádáni o zadání bezpečné přístupové fráze. Přístupová fráze přidává další vrstvu zabezpečení. Pokud nastavíte přístupovou frázi, budete vyzváni k jejímu zadání pokaždé, když použijete klíč pro přihlášení ke vzdálenému počítači.

Pokud přístupovou frázi nastavit nechcete, stiskněte Enter .

Enter passphrase (empty for no passphrase):

Celá interakce vypadá takto:

Chcete-li ověřit, že byl vygenerován nový pár klíčů SSH, zadejte:

ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

A je to. Úspěšně jste vygenerovali pár klíčů SSH na klientském počítači Ubuntu.

Zkopírujte veřejný klíč na vzdálený server #

Nyní, když máte pár klíčů SSH, dalším krokem je zkopírovat veřejný klíč na vzdálený server, který chcete spravovat.

Nejjednodušší a doporučený způsob, jak zkopírovat veřejný klíč na server, je použít ssh-copy-id nářadí. Na vašem místním počítači zadejte:

ssh-copy-id remote_username@server_ip_address

Budete vyzváni k zadání hesla vzdáleného uživatele:

remote_username@server_ip_address's password:

Jakmile je uživatel ověřen, veřejný klíč ~/.ssh/id_rsa.pub bude připojen ke vzdálenému uživateli ~/.ssh/authorized_keys soubor a připojení bude uzavřeno.

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.

Pokud z nějakého důvodu ssh-copy-id nástroj není na vašem místním počítači dostupný, zkopírujte veřejný klíč pomocí následujícího příkazu:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Přihlaste se na svůj server pomocí klíčů SSH #

Po dokončení výše uvedených kroků byste měli být schopni se přihlásit ke vzdálenému serveru, aniž byste byli vyzváni k zadání hesla.

Chcete-li to otestovat, zkuste se přihlásit na svůj server přes SSH:

ssh remote_username@server_ip_address

Pokud jste pro soukromý klíč nenastavili přístupovou frázi, budete okamžitě přihlášeni. V opačném případě budete vyzváni k zadání přístupové fráze.

Deaktivace ověřování hesla SSH #

Vypnutí ověřování heslem přidá vašemu serveru další vrstvu zabezpečení.

Před deaktivací ověřování heslem SSH se ujistěte, že se můžete přihlásit na svůj server bez hesla a že uživatel, se kterým se přihlašujete, má oprávnění sudo.

Přihlaste se ke vzdálenému serveru:

ssh sudo_user@server_ip_address

Otevřete konfigurační soubor SSH pomocí textového editoru:

sudo nano /etc/ssh/sshd_config

Vyhledejte následující direktivy a upravte je následovně:

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Po dokončení uložte soubor a restartujte službu SSH zadáním:

sudo systemctl restart ssh

V tomto okamžiku je ověřování na základě hesla zakázáno.


Ubuntu
  1. Jak nastavit klíče SSH

  2. Jak nastavit klíče SSH na Ubuntu 16.04

  3. Jak nastavit klíče SSH na Debianu

  1. Jak povolit SSH na Ubuntu 18.04

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

  3. Jak nakonfigurovat autorizované klíče SSH na Ubuntu

  1. Jak vygenerovat klíče SSH na Ubuntu 18.04

  2. Jak vygenerovat a nastavit klíče SSH na CentOS 7

  3. Jak nastavit přihlášení k SSH bez hesla