Wybierz inny temat

Logowanie do serwera przez SSH za pomocą klucza

Logowanie do serwera przez protokół SSH można autoryzować, oprócz hasła, również kluczem SSH.

Poniżej podajemy opis przykładowej konfiguracji takiego połączenia z wiersza poleceń systemu Linux (logowanie z użyciem klucza jest dostępne także dla wielu innych systemów i aplikacji - sposób dodania klucza będzie opisany w ich plikach pomocy). Wszystkie poniższe komendy wpisuj ręcznie (bez kopiowania), aby uniknąć nieprawidłowości.

Jeśli posiadasz już gotową parę kluczy (prywatny i publiczny).

1. Uruchom konsolę poleceń na hoście lub komputerze lokalnym z systemem linux z którego połączenie ma być wykonane.
2. Dodaj klucz publiczny (najczęściej z rozszerzeniem '.pub') na serwerze do którego będziesz się łączyć. Najprostszym sposobem jest skorzystanie z narzędzia ssh-copy-id. Przykładowo:

ssh-copy-id -i plik_klucza login@adres_serwera 
 

w naszym przykładzie:

ssh-copy-id -i ~/.ssh/id_rsa.pub test@test.nazwa.pl
 

Po zatwierdzeniu zaakceptuj host jako zaufany (jesli nie robiłeś tego wcześniej), podaj hasło logowania do swojego serwera i zatwierdź ENTER.

3. Po tych operacjach możliwe jest już wywołanie połączenia z użyciem klucza.
W przypadku problemów, upewnij się, że na docelowym serwerze (w naszym przykładzie test.nazwa.pl) katalog ~/.ssh oraz plik ~/.ssh/authorized_keys mają właściwe uprawnienia dostępu (755). Jeśli tak nie jest, należy zmienić je komendą chmod, np.

chmod 755 ~/.ssh/authorized_keys
chmod 755 ~/.ssh
 
Jeśli nie posiadasz pary kluczy i chcesz je wygenerować.

W konsoli skorzystaj z polecenia ssh-keygen. W naszym przykładzie komenda tworzy klucz typu RSA dla protokołu SSH w wersji 2, (inne wersje możesz generować stosując odpowiednie opcje - opis znajdziesz po wywołaniu komendy ssh-keygen --help).
Przykładowa komenda:

ssh-keygen -b 2048 -t rsa
 

Po wpisaniu komendy ssh-keygen i jej wykonaniu, pojawi się komunikat:

Enter file in which to save the key (~/.ssh/id_rsa):
 

Możesz podać własną lokalizację, lub zatwierdzić puste pole klawiszem ENTER, wówczas klucz prywatny i publiczny zostanie zapisany z domyślną nazwą do lokalizacji ujętej w nawiasie, np.:

~/.ssh/id_rsa.key (klucz prywatny)
~/.ssh/id_rsa.key.pub (klucz publiczny)
 

W następnym kroku pojawi się prośba o podanie i powtórzenie hasła.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
 

Podanie hasła jest zalecane, ale nie jest wymagane. Możesz zatwierdzić puste pole klawiszem 'Enter'.

Your identification has been saved in /home/katalog/.ssh/id_rsa.
Your public key has been saved in /home/katalog/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:e16xemhb9wFA0yrCVy5un3q6c5RZZNjvkv84RP/HC0M logowanie ssh
Czy artykuł rozwiązał problem?
Tak Nie