tux.bat
Pro autentizaci uživatele vzdálenému systému se běžně používá kombinace dvou údajů: jména a hesla. Pokud heslo, které uživatel pošle spolu s uživatelským jménem, je heslo, které má server u daného uživatele uložené v databázi hesel, uživatel je autentizován. Tuto metodu autentizace lze v dnešní době označit za zastaralou a nepříliš bezpečnou.
Používání SSH klíčů je bezpečný způsob autentizace ke vzdálenému serveru. Každý uživatel má k dispozici dva klíče: veřejný (public) a soukromý (private).
SSH klíč je číslo o délce několika kilobitů. Jedná se o kryptografický prostředek, který se skládá ze dvou částí:
Shrnuto:
Server musí mít k dispozici veřejný klíč osoby, která má právo být systémem autentizována. Pomocí tohoto klíče zašifruje výzvu (blok náhodných dat) pro klienta, který pomocí privátního klíče prokáže, je-li schopen tuto výzvu dešifrovat.
Pokud server obdrží od klienta správně dešifrovanou výzvu, ověří tím, že klient má k dispozici příslušný privátní klíč a autentizuje jej. V opačném případě mu je přístup odepřen.
Výhodou je, že privátní klíč ani heslo se během tohoto procesu ověřování sítí neposílá.
Proč je klíč lepší než heslo
Proč je klíč horší než heslo
V příkazovém řádku Windows (nebo terminálu macOS/Linux) zadejte následující příkaz
(znak > pouze značí příkaz příkazového řádku Windows):
> ssh-keygen -t rsa -b 2048
Všechny dotazy stačí „odentrovat“:
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\machac/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\machac/.ssh/id_rsa.
Your public key has been saved in C:\Users\machac/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7fIrCNcQ4xl1pDa7XM5swLjDgRlwveEt5giAuzT+TSE machac@PC
The key's randomart image is:
+---[RSA 2048]----+
|=.B+. |
|.Xoo.o |
|oo.+* . |
|.+o+ o oS.. |
| .o * + =. |
| .o X ..+. |
| .o + oo |
| .. . .o. |
+----[SHA256]-----+
Ve složce
C:\users\<jmeno>\.ssh\
se vytvořily dva soubory (klíče) ve formátu OpenSSH (cs.wikipedia.org/wiki/OpenSSH):
id_rsa
id_rsa.pub
Oba klíče jsou prosté textové soubory obsahující pouze alfanumerické znaky.
Všimněte si, že tečka u
.ssh
nemá ve Windows význam "skrytý".
Veřejný klíč id_rsa.pub
je potřeba „dopravit“ na server (kvůli snazšímu následnému nastavení přímo do skrytého adresáře ~/.ssh
). Toto snadno provedeme v tomtéž příkazovém řádku příkazem scp
(secure copy). Příkaz má tvar scp <zdroj> <cíl>
:
scp C:/users/<jmeno>/.ssh/id_rsa.pub 10XPrijmeniJ@tux.panska.cz:~/.ssh
Na konci za dvojtečkou je cesta do adresáře, zde ~/.ssh
(neboli /home/<jmeno>/.ssh
)
Před přesunem si server vyžádá vaše heslo na serveru.
Pro dokončení nastavení veřejného klíče se přihlaste na server (naposledy pomocí hesla) a dokončete nastavení veřejného klíče takto:
$ cd .ssh
$ cat id_rsa.pub >> authorized_keys
$ rm id_rsa.pub
$ chmod 600 authorized_keys
Před testem funkčnosti se ze serveru odhlaste:
$ logout
a vyzkoušejte se přihlásit pomocí klíčů (bez hesla):
ssh 10XPrijmeniJ@tux.panska.cz
Pokud jste neudělali chybu v nastavení, systém vás přihlásí bez nutnosti zadávat heslo 👍.
Na lokálním počítači s Windows máme možnost si nadefinovat konfigurace pro připojování ke vzdáleným serverům, např. proto, abychom si nemuseli všechno pamatovat. Stačí vytvořit konfigurační soubor, kam všechny tyto informace zapíšeme a odkud si je příkaz ssh umí načíst.
Ve složce .ssh
vytvoříme soubor config
:
> C:\Users\<jmeno>\.ssh\config
Soubor musí být bez přípony. K tomu postačí obyčejný Poznámkový blok. Při ukládání zvolte jako typ souboru Všechny soubory (*.*)
.
Do něj vložíme obsah v následujícím formátu:
Host tux
Hostname tux.panska.cz
User 10XPrijmeniJ
IdentityFile ~/.ssh/id_rsa
Nyní se z Příkazového řádku Windows (cmd) připojíte k serveru aliasem tux
:
> ssh tux
Parametr tux
musí odpovídat parametru příkazu Host
v souboru config
(viz výše).
tux.bat
Pro ještě snazší spouštění na Windows si můžete např. na Ploše vytvořit tzv. dávkový soubor s názvem např. tux.bat
, do kterého zapíšete příkaz
ssh tux
Na server se připojíte jednoduše poklepáním na tento soubor.
Pozn: "Dávkový soubor" je prostý textový soubor s příponou
.bat
. V linuxu je to "skript".
Pokud se chcete i doma přihlašovat bez hesla, stačí si soubor s privátním klíčem id_rsa
přenést do tohoto počítače a uložit je do stejné složky:
Windows C:\Users\<jmeno>\.ssh\id_rsa
macOS /Users/<jmeno>/.ssh/id_rsa
Linux /home/<jmeno>/.ssh/id_rsa
Dbejte na jeho bezpečné uložení!
Pokud vám přihlašování klíčem nefunguje, např.
smažte soubor
C:\Users\<jmeno>\.ssh\known_hosts
Tím se "resetují" všechna dříve uložená (ověřená) spojení.