Každý uživatel Linuxu zaměřený na bezpečnost bude při připojování k serverům vždy používat protokol SSH. Je to proto, že SSH je zabezpečený protokol, který šifruje data nebo informace odesílané přes síť. SSH nahradilo v 90. letech starší a nezabezpečené protokoly jako telnet a rlogin. V této příručce se podíváme na použití příkazů SSH s příklady.
Ve výchozím nastavení běží SSH na portu TCP/IP 22
Kontrola, zda služba SSH běží na systému Linux
Pokud jste aktuálně přihlášeni k systému Linux a chcete zkontrolovat, zda běží SSH, spusťte příkaz
# systemctl status sshd
Ukázkový výstup
Kromě toho můžete zkontrolovat, zda ssh naslouchá na portu 22 na vašem serveru pomocí netstat
příkaz, jak je znázorněno
# netstat -pnltu
Ukázkový výstup
Tyto dvě techniky potvrdily, že protokol SSH běží na portu 22.
Přihlášení do vzdáleného systému pomocí SSH
Chcete-li se přihlásit ke vzdálenému systému jako uživatel root z počítače se systémem Linux, použijte níže uvedenou syntaxi:
# ssh root@host-ip-address
Například se přihlásím ke vzdálenému počítači Debian IP 173.82.208.144
# ssh [email protected]
Pokud se připojujete poprvé, zobrazí se následující výzva
Zadejte yes
pro přidání serveru do seznamu known_hosts
umístěný v ~/.ssh/known_hosts
Každý server se skládá z hostitelského klíče, což je kryptografický klíč. Tento klíč se používá k autentizaci systémů pomocí protokolu SSH.
Dále budete vyzváni k zadání hesla vzdáleného systému. Zadejte heslo a stiskněte „ENTER“ pro přihlášení do systému.
Přihlášení do systému jako běžný uživatel
Někdy se možná budete chtít přihlásit ke vzdálenému systému pomocí účtu běžného uživatele, pokud je zakázáno vzdálené přihlášení root. Chcete-li to provést, postupujte podle níže uvedené syntaxe
# ssh username@host-ip-address
NEBO
# ssh -l username host-ip-address
Chcete-li se přihlásit jako uživatel ‚john‘ sídlící ve vzdáleném systému Debian, spusťte příkaz
# ssh [email protected]
Ukázkový výstup
Totéž můžete získat pomocí níže uvedeného příkazu.
# ssh -l john 173.82.208.144
Ukázkový výstup
Konfigurace ověřování bez hesla
Někdy můžete neustále potřebovat přístup ke vzdáleným systémům nebo můžete mít služby, které mohou vyžadovat přístup k těmto systémům. Ověřování heslem může vést k plýtvání časem nebo bránit přístupu k automatizovaným aplikacím, které vyžadují přístup ke vzdáleným systémům. Z tohoto důvodu je vhodné nakonfigurovat ověřování SSH bez hesla pro vaše vzdálené servery.
Krok 1:Vygenerujte klíče SSH
Prvním krokem bude vygenerování SSH klíčů na serveru pomocí příkazu:
# ssh-keygen
Ukázkový výstup
po zobrazení výzvy v každém kroku jednoduše stiskněte ‚ENTER‘ pro zachování výchozích hodnot
Veřejný klíč – id_rsa.pub
– je uložen v ~/.ssh/
adresář
Krok 2:Zkopírování veřejného klíče SSH do vzdáleného klienta
Dalším krokem bude zkopírování vygenerovaného veřejného klíče do vzdáleného klientského systému. K tomu použijeme ssh-copy-id
příkaz . Příkaz zkopíruje klíč SSH do vzdáleného klienta jako autorizovaný klíč. To umožňuje následné automatické přihlašování bez hesla.
# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Ukázkový výstup
Nyní se můžete bez problémů přihlásit ke vzdálenému systému Debian, aniž byste byli vyzváni k zadání hesla
Ukázkový výstup
Veřejný klíč je uložen v klientském systému v ~/.ssh/authorized_keys
soubor.
NĚKOLIK BODU K POZNÁMKY
- Klienti SSH ukládají hostitelské klíče k systémům, ke kterým jsou připojeni. Tyto klíče se označují jako
known host keys
a jsou uloženy v~/.ssh/
adresář. - Soukromé klíče –
id_rsa
by měl být přístupný pouze uživateli root a neměl by být kopírován do žádného systému. Pokud dojde k úniku k jiné třetí straně, může to vést k útokům typu man-in-the-middle, kdy mohou být klientské systémy kompromitovány hackery.