Primárním způsobem připojení k linuxovému serveru je protokol SSH . Tento typ připojení je bezpečný, protože veškerá data přenášená přes něj jsou šifrována. Abyste mohli navázat SSH připojení , měli byste jej nakonfigurovat na vzdáleném serveru, ke kterému se chcete připojit, a na klientovi na straně uživatele. Existuje spousta softwaru pro SSH připojení. V Linuxu je nejoblíbenější balíček OpenSSH a pro Windows se většinou používá PuTTY.
Podívejme se blíže na konfiguraci serveru pomocí Ubuntu Server 18.04 jako příkladu a poté se pokusíme připojit k serveru z Linuxu a Windows.
Všechno, co budeme dělat, budeme dělat z účtu běžného uživatele. V tomto případě jsme vytvořili uživatele „ mihail “ a účet „ root “ je ve výchozím nastavení zakázán.
Nastavení na straně serveru
Nastavte balíček spuštěním tohoto příkazu:
sudo apt install openssh-server
Po dokončení instalace se ujistěte, že služba běží. Použijte tento příkaz:
systemctl status sshd
Stav „ Aktivní (spuštěno) “ znamená, že služba je povolena a funguje normálně.
Abyste zabránili blokování příchozích připojení bránou firewall, nezapomeňte ji vypnout, protože v tomto článku nebudeme konfigurovat síťovou bránu firewall.
Použijte tento příkaz:
sudo ufw disable
V této fázi se již můžete připojit k serveru. S výchozím nastavením server umožňuje připojení na standardní port 22 s ověřováním na základě hesla.
SSH připojení z Linuxu
Klient OpenSSH je zpravidla nainstalován na Linuxu ve výchozím nastavení a nevyžaduje další ruční konfiguraci. Spojení lze navázat z terminálu pomocí příkazu ssh. Parametry by v tomto případě byly uživatelské jméno a IP adresa vzdáleného serveru. Na našem testovacím serveru, který používáme jako příklad, je pouze jeden účet „mihail“, takže použijeme tento.
ssh [email protected]
Při prvním připojení budete muset potvrdit přidání veřejného klíče serveru do databáze, takže odpovězte „ ano “. Poté můžete zadat heslo. Pokud se připojení úspěšně naváže, zobrazí se uvítací text příkazového řádku serveru. Nyní se všechny příkazy budou provádět přímo na vzdáleném serveru.
SSH z Windows
Otevřete Putty a nastavte parametry připojení. Ujistěte se, že přepínač „ Typ připojení “ je nastaven na SSH . Zadejte IP adresu do pole „ Název hostitele “, výchozí hodnotu 22 do pole „ Port “ a klikněte na „ Otevřít “.
Při prvním připojení vás Putty požádá o potvrzení, že tomuto serveru důvěřujete, takže klikněte na „ Ano “.
Po zadání přihlašovacího jména a hesla se zobrazí příkazový řádek vzdáleného serveru.
Autentizace pomocí klíče. Zvýšení úrovně zabezpečení
Když se klient pokouší navázat zabezpečené připojení k serveru prostřednictvím SSH, před povolením připojení server vyžaduje ověření (ověření) klienta. Jak již bylo zmíněno, ve výchozím nastavení se obvykle používá ověřování na základě hesla. Neposkytuje robustní zabezpečení, protože vždy existuje způsob, jak jej brutálně vynutit. Kromě toho se autentizace heslem nevztahuje na připojení SSH pomocí skriptů.
Pro tento typ úloh existuje speciální metoda ověřování pomocí klíče. Jde o to, že klient vygeneruje soukromé a veřejné klíče a poté se veřejný klíč odešle na server. Poté pro připojení k serveru nepotřebujete heslo, protože autentizace se provádí na základě veřejných a soukromých klientských klíčů. Pro zajištění dobré úrovně zabezpečení by měl být přístup k soukromému klíči omezen. Vzhledem k tomu, že soukromý klíč je uložen na straně klienta a není přenášen přes síť, je tato metoda považována za bezpečnější.
Autentizace pomocí klíče na Linuxu
Pojďme vygenerovat veřejné a soukromé klíče na klientovi pomocí obslužného softwaru ssh-keygen. Nástroj navrhne změnu cesty k soukromému klíči a zadání přístupové fráze pro větší zabezpečení. Ve výchozím nastavení ponechte všechny parametry stisknutím klávesy Enter na všechny požadavky.
V domovském adresáři ve složce .ssh tedy najdete dva vygenerované soubory: id_rsa a id_rsa.pub , které obsahují soukromý a veřejný klíč.
Poté budete muset odeslat veřejný klíč na server. Chcete-li to provést, zkopírujte obsah souboru „ id_rsa.pub “ do souboru „ ~/.ssh/authorized_keys “ na serveru. Pojďme na to nejjednodušší cestou s pomocí nástroje „ ssh-copy-id “. Zadejte přihlašovací jméno a IP adresu serveru, stejně jako v případě běžného připojení. Po zadání hesla se veřejný klíč klienta automaticky zkopíruje na server. Spusťte tento příkaz:
ssh-copy-id [email protected]
Poté, co toto vše uděláte, server již nebude vyžadovat zadání hesla.
Ověřování pomocí klíče ve Windows
Otevřete PUTTYGEN a klikněte na „ Generovat “. Pro vygenerování klíčů stačí pohnout myší nad obrazovkou a nástroj je náhodně vygeneruje.
Po vygenerování klíčů klikněte na „ Uložit soukromý klíč “ a uložte jej do souboru se soukromým klíčem na disku. Cestu můžete nastavit libovolně, ale o něco později ji budete muset zadat v Putty. Poté zkopírujte veřejný klíč z horní části okna.
Veřejný klíč odešleme jednoduše jeho zkopírováním do terminálu. Otevřeme Putty a připojíme se k serveru jako obvykle. Nyní vytvořme soubor „ .ssh/authorized_keys “ a omezíme přístup k němu ostatním uživatelům, aby byl dostupný pouze pro jeho tvůrce.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Po vytvoření souboru do něj vložte veřejný klíč klienta. V předchozí fázi jsme zkopírovali veřejný klíč do schránky. Chcete-li do souboru zaznamenat, co je ve schránce, použijte příkaz cat a přesměrování výstupu.
cat > .ssh/authorized_keys
Po zadání příkazu klikněte pravým tlačítkem myši v terminálovém okně a vložte obsah schránky. Pro potvrzení zadání stiskněte klávesovou zkratku „ Ctrl+D “ a odpojte se od serveru.
Nyní uvedeme cestu k soukromému klíči v Putty a znovu se připojíme k serveru.
Od této chvíle, abyste se mohli připojit k serveru, budete muset zadat pouze uživatelské jméno. Pokud se pokoušíte připojit k serveru z jiného zařízení, které nemá správný soukromý klíč, server si vyžádá heslo. Po nastavení ověřování na základě klíče můžete zakázat přístup pomocí hesla.