Technologie SSH (Secure Shell) umožňuje bezpečné dálkové ovládání počítače prostřednictvím zabezpečeného připojení. SSH šifruje všechny přenesené soubory, včetně hesel, a také přenáší jakýkoliv síťový protokol. Aby nástroj fungoval správně, je nutné jej nejen nainstalovat, ale také nakonfigurovat. Rádi bychom hovořili o produktu hlavní konfigurace v tomto článku, přičemž jako příklad uvádíme nejnovější verzi operačního systému Ubuntu, na kterém bude server umístěn.
Obsah
Pokud jste nedokončili instalaci na serveru a klientských počítačích, měli byste to udělat zpočátku, protože celý postup je poměrně jednoduchý a netrvá dlouho. Podrobné pokyny k tomuto tématu naleznete v našem dalším článku na následujícím odkazu. Ukazuje také postup pro editaci konfiguračního souboru a testování SSH, takže dnes se budeme zabývat dalšími úkoly.
Další podrobnosti: Instalace SSH-serveru v Ubuntu
Nově nainstalovaný SSH nemá určené klíče pro připojení ze serveru ke klientovi a naopak. Všechny tyto parametry musí být nastaveny ručně ihned po přidání všech komponent protokolu. Klíčový pár pracuje s použitím RSA algoritmu (zkratka pro jména vývojářů Rivest, Shamir, a Adleman). Díky tomuto kryptosystému jsou speciální klíče šifrovány pomocí speciálních algoritmů. Chcete-li vytvořit pár veřejných klíčů, stačí v konzole zadat příslušné příkazy a postupujte podle zobrazených pokynů.
ssh-keygen
a stiskněte klávesu Enter . Nyní je vytvořen pár klíčů - tajný a veřejný, který bude použit pro další propojení počítačů. Stačí pouze umístit klíč na server, aby bylo ověřování SSH úspěšné.
Existují tři metody kopírování klíčů. Každá z nich bude optimální v různých situacích, kdy například jedna z metod nefunguje nebo není vhodná pro konkrétního uživatele. Navrhujeme zvážit všechny tři možnosti, počínaje nejjednodušší a nejúčinnější.
Možnost 1: příkaz ssh-copy-id
Příkaz ssh-copy-id
je integrován do operačního systému, takže pro jeho spuštění není nutné instalovat žádné další komponenty. Klíč zkopírujte podle jednoduché syntaxe. V terminálu musíte zadat ssh-copy-id username@remote_host
, kde username @ remote_host je název vzdáleného počítače.
Při prvním připojení obdržíte text oznámení:
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
Chcete-li pokračovat v připojení, musíte zadat možnost yes . Poté bude nástroj nezávisle hledat klíč ve formě souboru id_rsa.pub
, který byl vytvořen dříve. Úspěšná detekce zobrazí následující výsledek:
/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 keys
[email protected]'s password:
Zadejte heslo ze vzdáleného hostitele, aby ho mohl zadat. Nástroj zkopíruje data ze souboru veřejných klíčů ~ / .ssh / id_rsa.pub a poté se zpráva zobrazí na obrazovce:
Number of key(s) added: 1
Nyní se pokuste přihlásit do počítače pomocí: "ssh '[email protected]'"
podívejte se na to.
Vzhled takového textu znamená, že klíč byl úspěšně stažen do vzdáleného počítače a nyní nebudou žádné problémy s připojením.
Možnost 2: Zkopírujte veřejný klíč přes SSH
Pokud nemůžete použít výše uvedený nástroj, ale máte heslo pro přihlášení ke vzdálenému serveru SSH, můžete ručně načíst uživatelský klíč, čímž zajistíte další stabilní ověřování při připojování. Používá se pro tento příkaz kočka , která čte data ze souboru, a pak budou odeslána na server. V konzole budete muset zadat řádek
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
.
Když se zobrazí zpráva
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
pokračujte v připojování a zadejte heslo pro přihlášení k serveru. Poté bude veřejný klíč automaticky zkopírován na konec konfiguračního souboru authorized_keys .
Možnost 3: Ruční kopírování veřejného klíče
Pokud není přístup ke vzdálenému počítači přes server SSH, všechny výše uvedené kroky jsou prováděny ručně. Nejdříve se dozvíte o klíči na PC serveru příkazem cat ~/.ssh/id_rsa.pub
.
Na obrazovce se zobrazí následující řádek: ssh-rsa + ключ в виде набора символов== demo@test
. Poté pokračujte v práci na vzdáleném zařízení, kde vytvořte nový adresář prostřednictvím mkdir -p ~/.ssh
. Navíc vytvoří soubor authorized_keys
. Dále vložte klíč, který jste se naučili dříve prostřednictvím echo + строка публичного ключа >> ~/.ssh/authorized_keys
. Poté se můžete pokusit o autentizaci se serverem bez použití hesel.
V předchozí části jste se dozvěděli o třech metodách kopírování klíče vzdáleného počítače na server. Tyto akce vám umožní připojení bez použití hesla. Tento postup se provádí pomocí příkazového řádku zadáním shh ssh username@remote_host
, kde username @ remote_host je uživatelské jméno a hostitel požadovaného počítače. Při prvním připojení budete upozorněni na neznámé připojení a můžete pokračovat výběrem možnosti yes .
K tomuto spojení dojde automaticky, pokud během vytváření dvojice klíčů nebylo zadáno heslo. V opačném případě jej musíte nejprve zadat, abyste mohli pokračovat v práci s SSH.
Úspěšné nastavení kopírování klíčů je zvažováno v situaci, kdy můžete zadat server bez použití hesla. Schopnost autentizovat tímto způsobem však umožňuje útočníkům používat nástroje k nalezení hesla a proniknutí do zabezpečeného připojení. Ochrana před takovými případy umožní úplné vypnutí přihlašovacího hesla v konfiguračním souboru SSH. To bude vyžadovat:
sudo gedit /etc/ssh/sshd_config
. sudo systemctl restart ssh
. Ověřování heslem bude zakázáno a budete se moci k serveru přihlásit pouze pomocí klíčů speciálně vytvořených pro tento účel pomocí algoritmu RSA.
V Ubuntu je výchozí firewall Uncomplicated Firewall (UFW). Umožňuje povolit připojení pro vybrané služby. Každá aplikace vytvoří v tomto nástroji svůj vlastní profil a UFW je spravuje povolením nebo odmítnutím připojení. Konfigurace profilu SSH přidáním do seznamu je následující:
sudo ufw app list
. sudo ufw allow OpenSSH
. sudo ufw enable
. sudo ufw status
, po kterém uvidíte stav sítě. Tím se dokončí naše pokyny pro konfiguraci SSH pro Ubuntu. Další konfiguraci konfiguračního souboru a dalších parametrů provádí každý uživatel podle svých požadavků. Můžete se seznámit s provozem všech součástí SSH v oficiální dokumentaci protokolu.