Press "Enter" to skip to content

Zabezpečené spojení k Linuxovému serveru

Zabezpečené spojení k Linuxovému serveru je nejčastěji realizováno pomoci SSH, dnes si ukážeme jak si připravit prostředí pro spojení na vzdálený server které se autorizuje výměnou klíčů, nemusí tedy dojít k zadávání hesla pro přístup k vzdálené straně, tento způsob se používá například pro zálohování dat nebo periodické spouštění scriptů na vzdáleném stroji například z důvodů monitoringu.

Budeme potřebovat nastavit obě strany, na serveru bežící službu openssh a samozřejmě na firewallu otevřený port 22 který ssh protokol používá. Na serverovém počítači si vygenerujeme potřebné veřejné a privátní klíče pomocí konzolového nástroje ssh-keygen (je součástí balíku ssh-client pokud ne pokuste se na Vaší distribuci doinstalovat).

pod uživatelem na serrveru zadáme ssh-keygen a pokračujeme dle instrukcí:

[michalek@corpo01 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/michalek/.ssh/id_rsa):
Created directory '/home/michalek/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/michalek/.ssh/id_rsa.
Your public key has been saved in /home/michalek/.ssh/id_rsa.pub.
The key fingerprint is:
fb:09:1e:60:fc:9d:2a:1f:68:ec:94:c6:60:8a:0d:07 michalek@corpo01.dch.cz
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
|E |
| . . |
|. . o + S |
| = o = = o . |
|. o O * o |
| =.. * . |
| .o+ o |
+-----------------+
[michalek@corpo01 ~]$

Pokud chcete při generování do certifikátu přidat passphrase je to možné ale připojení k vzdálenému serveru neproběhne bez interakce s uživatelem. Bude vyžadován tento kod při každém použítí certifikátu. Já ho ve svém příkladu nepoužívám a pouze celou procedůru potvrdím vše potřebné bude vygenerováno.
Jak je vidět z výstupu, do našeho domovského adresáře byla přidána složka .ssh v ní soubor id_rsa s naším privátním klíčem, ten nikomu dávat nebudeme, a také soubor id_rsa.pub což je veřejný klíč.
Aby mohlo proběhnout ověření klíčem musíme na vzdáleném serveru v složce uživatele mít složku .ssh a v ní soubor authorized_keys ve kterém bude veřejný klíč, tím se nastaví důvěra klient server, server bude znát náš veřejný klíč.
Aby jsme toto zajistily je tu jednoduchý příkaz do konzole který se přihlásí na server pomocí hesla a veřejný klíč zkopíruje do správné složky. V této chvíli musíme mít cílový server dostupný a openssh službu funkční. Otestujeme pomocí příkazu ssh user@server.local při přihlášení zadáme heslo vzdáleného uživatele.
Pokud se pomoci hesla takto k serveru přihlásíme můžeme použít následující řetězec příkazu pro zkopírování veřejného klíče na vzdálený server.
[user@desktop.local~]# cat ~/.ssh/id_rsa.pub | ssh server.local -l user -p 22 "cat - >> ~/.ssh/authorized_keys"
Jinýmy slovy jde o výpis souboru id_rsa.pub a přesměrování výstupu na vzdálený server do souboru .ssh/authorized_keys
Zkusme tedy teď odpojit ssh ze vzdáleného serveru a přihlásit se pomoci ssh znovu. automaticky by mělo dojít k navázání ssh tunelu na vzdálený server bez interakce s uživatelem a přihlášení bez zadání hesla k učtu.