Kiedy klient próbuje połączyć się z serwerem SSH za pomocą klucza publicznego, połączenie jest odrzucane, a w logach klienta pojawia się komunikat informujący o niepowodzeniu autoryzacji. Przykładowy komunikat błędu w logach klienta może wyglądać tak:
Permission denied (publickey).
Rozwiązanie problemu
Upewnij się, że klucz publiczny klienta jest poprawnie dodany do pliku authorized_keys
na serwerze.
Na komputerze klienta wyświetl zawartość pliku z kluczem publicznym:
cat ~/.ssh/id_rsa.pub
Skopiuj całą zawartość tego pliku (klucz publiczny).
Zaloguj się na serwer za pomocą alternatywnej metody autoryzacji (np. hasła).
Otwórz plik authorized_keys
na serwerze do edycji. Jeśli plik nie istnieje, utwórz go:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
Wklej skopiowany klucz publiczny do pliku authorized_keys
. Upewnij się, że każdy klucz jest w osobnej linii.
Zapisz zmiany i zamknij edytor tekstu.
Upewnij się, że plik authorized_keys
ma odpowiednie uprawnienia:
chmod 600 ~/.ssh/authorized_keys
Upewnij się, że katalog ~/.ssh
ma odpowiednie uprawnienia:
chmod 700 ~/.ssh
Podsumowanie – SSH Permission denied (publickey)
Po wykonaniu tych kroków, klucz publiczny klienta będzie poprawnie zapisany na serwerze, co umożliwi autoryzację kluczem publicznym. Użytkownik powinien być teraz w stanie połączyć się z serwerem SSH używając swojego klucza publicznego bez problemów.