W poniższym artykule zaprezentuje jak można zalogować się na zdalny serwer Linux bez wprowadzania hasła.

SSH-Keygen to narzędzie, które służy do tworzenia, zarządzania i konwersji kluczy uwierzytelniania dla ssh. SSH-keygen przechowuje klucz prywatny w $HOME/.ssh/id_rsa i klucz publiczny w $ HOME/.ssh/id_rsa.pub w katalogu domowym użytkownika. SSH-copy-id kopiuje klucze tożsamości w odpowiednim formacie, zapewnia uprawnienia do plików i prawa własności oraz zapewnia, że klucz prywatny nie jest przypadkowo skopiowany.

Tworzymy klucz publiczny i prywatny przy użyciu ssh-key-gen na localhost

marcin@localhost:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/marcin/.ssh/id_rsa): ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /home/marcin/.ssh/id_rsa.
Your public key has been saved in /home/marcin/.ssh/id_rsa.pub.
The key fingerprint is:
a3:e4:15:30:50:13:b4:da:12:b5:b6:c7:90:c9:24:c4 marcin@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| o++X. |
| E= O |
| . O . |
| = + . |
| o + S |
| + + . |
| o |
| |
| |
+-----------------+

Kopiujemy klucz publiczny na zdalny host używając-ssh-copy-id

marcin@localhost: ssh-copy-id -i ~/.ssh/id_rsa.pub marcin@zdalnyhost
marcin@localhost's password:
Now try logging into the machine, with "ssh 'marcin@zdalnyhost'", and check in:

~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Teraz możemy zalogować się do serwera bez podania hasła

marcin@localhost$ ssh zdalnyhost