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.
První věcí kterou budeme potřebovat je server a kliant na klientovy ssh klienta a na serveru bežící službu openssh, postačí nám standartní konfigurace a samozřejmě na firewallu otevřený port 22 který ssh protokol používá.
Na klientském počítači v 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).
takže pod uživatelem 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živatlem. Bude vyžadován tento klíč při každém použítí certifikátu. Já ho ve svém příkladu nepoužívám 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 skrytá složka .ssh (vše s . je v linuxu skryté) v ní soubor id_rsa s naším privátním klíčem, ten nikomu davat nebudeme, a 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 Nás veřejný klíč, tím se nastaví důvěra klient server, server zná veřejný klíč, klient posílá otisk který sedí oproti veřejnému klíči, spojeni je tímto navázáno. Aby jsme toto zajistily je tu jednoduchý přikaz do konzole který se naloguje na server pomocí hesla a Náš veřejný klíč zkopíruje do dané složky. V této chvíli musíme mít cilový server dostupný a ssh funkčni. Otestujeme pomocí příkazu ssh mujserver.local při přihlášení zadáme heslo vzdáleného uživatele, uživatel je stejný jako ten Náš lokální pokud by jsme chtěly impersonaci skrze jiného uživatele použijeme příkaz ssh uzivatel@mujserver.local
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@server1.local~]# cat ~/.ssh/id_rsa.pub | ssh user@server.local "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 složky .ssh/authorized_keys
Zkusme tedy teď odpojit ssh ze vzdáleného serveru a přihlásit se pomoci ssh znovu. momentálně by mlěo dojít k navázání ssh tunelu na vzdálený server bez interakce s uživatelem automaticky.
Komentáře
Poslat nový komentář