Jak naprawić błąd Odmowa dostępu (Publickey)
Opublikowany: 2024-01-10- Dlaczego jest to ważne
- Podstawy bezpiecznych połączeń komputerowych
- Klucz do zamka: klucze publiczne
- Dlaczego występuje ten błąd?
- Jak to naprawić
- Dodatkowe wskazówki, jeśli nadal nie działa
- Utrzymanie jego płynnego działania
- Często zadawane pytania
- Inne zasoby
- Podsumowanie
Czy kiedykolwiek podczas korzystania z komputera natknąłeś się na komunikat „Błąd: Odmowa uprawnień (Publickey)”? Jest to częsty błąd, który zwykle pojawia się podczas połączeń SSH, czyli sposobu, w jaki komputery bezpiecznie rozmawiają ze sobą.
Potraktuj to jak próbę użycia klucza, który nie pasuje do zamka. Gdy widzisz ten błąd, oznacza to, że Twój komputer ma problemy z nawiązaniem bezpiecznego połączenia z innym komputerem, ponieważ coś w ustawieniach zabezpieczeń nie jest zgodne.
Dlaczego jest to ważne
Bezpieczne połączenia, takie jak te nawiązywane za pomocą SSH, przypominają prywatną rozmowę w hałaśliwym pokoju. Nie chciałbyś, żeby wszyscy usłyszeli, zwłaszcza jeśli dzielisz się sekretami lub danymi osobowymi, prawda? Dlatego naprawienie tego błędu jest tak ważne.
Zapewnia prywatność i bezpieczeństwo rozmów prowadzonych na komputerze, zapewniając poufność poufnych informacji, takich jak hasła.
Podstawy bezpiecznych połączeń komputerowych
Przyjrzyjmy się, czym jest SSH.
SSH to skrót od Secure Shell i jest to specjalny sposób, w jaki komputery mogą komunikować się ze sobą przez Internet w super bezpieczny sposób. Wyobraź sobie SSH jako specjalny, prywatny tunel łączący dwa komputery.
Tylko te dwa komputery mogą przesyłać sobie wiadomości przez ten tunel, chroniąc ich rozmowę przed podsłuchiwaniem.
Klucz do zamka: klucze publiczne
Aby zapewnić bezpieczeństwo tego tunelu, SSH używa czegoś, co nazywa się „uwierzytelnianiem klucza publicznego”. To tak, jakby mieć specjalne hasło, ale w formie klucza. Twój komputer ma unikalny klucz (zwany kluczem publicznym), który udostępnia innemu komputerowi.
Pomyśl o tym jak o sekretnym uścisku dłoni. Jeśli uścisk dłoni nie jest zgodny, połączenie nie zostanie nawiązane i wtedy zostanie wyświetlony komunikat „Błąd: Odmowa uprawnień (Publickey)” .
Dlaczego występuje ten błąd?
Dlaczego więc widzisz ten błąd? Istnieje kilka typowych powodów:
- Kluczowe problemy: Czasami błąd pojawia się, ponieważ coś jest nie tak z konfiguracją klucza specjalnego. Być może klucz na Twoim komputerze nie pasuje do tego na komputerze, z którym próbujesz rozmawiać. To jak próba włożenia kwadratowego kołka w okrągły otwór – to po prostu nie zadziała.
- Niewłaściwe ustawienia: W innych przypadkach ustawienia lub uprawnienia na komputerze mogą być nieprawidłowo skonfigurowane. Może to uniemożliwić komputerowi prawidłowe użycie klucza, na przykład posiadanie odpowiedniego klucza, ale niemożność przekręcenia go w zamku.
Jak to naprawić
Teraz, gdy już trochę rozumiesz, dlaczego pojawia się ten błąd, porozmawiajmy o tym, jak go naprawić. Oto kilka kroków, które możesz wykonać:
Sprawdź uprawnienia klucza SSH:
Ustaw prawidłowe uprawnienia dla swojego klucza prywatnego.
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys
Upewnij się, że Twój klucz publiczny znajduje się w ~/.ssh/authorized_keys
na serwerze. Jeśli nie, dodaj go za pomocą:
kot ~/.ssh/id_rsa.pub | ssh użytkownik@nazwa hosta „kot >> ~/.ssh/authorized_keys”.
Debugowanie połączenia SSH
Uruchom ssh -vvv user@hostname, aby włączyć tryb szczegółowy, udostępniający szczegółową diagnostykę połączenia.
Sprawdź na serwerze poprawność konfiguracji, zwłaszcza dla PasswordAuthentication
i PubkeyAuthentication
.
cat itp/ssh/sshd_config
Dodatkowe rozwiązania:
Sprawdź dokładnie, czy używasz prawidłowej nazwy użytkownika dla połączenia SSH.
Uruchom ponownie usługę SSH, aby odświeżyć połączenia.
sudo systemctl restart sshd
Sprawdź port połączenia SSH w pliku konfiguracyjnym SSH. Wartość domyślna to zwykle 22, ale mogła zostać zmieniona.
Sprawdź dzienniki serwera, takie jak /var/log/auth.log lub /var/log/secure, aby uzyskać szczegółowe informacje o błędach.
Dodatkowe wskazówki, jeśli nadal nie działa
Jeśli po wykonaniu tych kroków nadal widzisz błąd, wypróbuj jeszcze kilka rzeczy:
- Tryb rozmowy: Włącz tryb szczegółowy w SSH. To jakby prosić komputer o podanie dodatkowych wskazówek na temat tego, co dzieje się nie tak. Robisz to, dodając
-vvv
do polecenia SSH, na przykładssh -vvv [email protected]
. Dzięki temu dowiesz się znacznie więcej szczegółów na temat tego, co dzieje się podczas próby połączenia. - Problemy z agentami: Czasami problem może dotyczyć agenta SSH, narzędzia przechowującego Twoje klucze. Jeśli agent nie działa prawidłowo, Twoje klucze nie zostaną poprawnie przedstawione. Czasami pomocne może być ponowne uruchomienie agenta SSH.
Utrzymanie jego płynnego działania
Aby uniknąć tego błędu w przyszłości, oto kilka wskazówek, dzięki którym wszystko będzie działać dobrze:
- Key Care: traktuj swoje klucze SSH jak klucz do domu. Zachowaj je w bezpiecznym miejscu i nie udostępniaj ich innym osobom. Regularnie sprawdzaj, czy nadal działają tak, jak powinny.
- Regularne kontrole: tak jak regularnie sprawdzasz samochód lub dom pod kątem problemów, zrób to samo z ustawieniami SSH. Upewnij się, że ustawienia nie zmieniły się nieoczekiwanie i że klucze są aktualne.
Często zadawane pytania
Jak skonfigurować uwierzytelnianie kluczem publicznym w SSH?
Aby skonfigurować uwierzytelnianie za pomocą klucza publicznego w SSH, najpierw wygeneruj parę kluczy SSH na komputerze lokalnym za pomocą polecenia takiego jak ssh-keygen
. Spowoduje to utworzenie klucza prywatnego ( id_rsa
) i klucza publicznego ( id_rsa.pub
). Następnie skopiuj klucz publiczny do pliku ~/.ssh/authorized_keys
serwera, używając ssh-copy-id user@server_ip
. Ze względów bezpieczeństwa upewnij się, że plik authorized_keys
ma prawidłowe uprawnienia (zwykle 600). Ta konfiguracja umożliwia SSH korzystanie z uwierzytelniania opartego na kluczach zamiast haseł.
Jakie są najczęstsze przyczyny błędu „Odmowa zezwolenia SSH (klucz publiczny)”?
- Typowe przyczyny tego błędu obejmują:
- Nieprawidłowe uprawnienia do plików kluczy SSH. Klucz prywatny powinien być czytelny tylko dla użytkownika (600).
- Błędna konfiguracja w plikach konfiguracyjnych SSH (
sshd_config
lubssh_config
). - Nieaktualne oprogramowanie klienta lub serwera SSH, które może nie obsługiwać bieżących protokołów uwierzytelniania.
- Zapora sieciowa lub oprogramowanie zabezpieczające blokujące porty lub połączenia SSH.
- Nieprawidłowo skonfigurowano klucz publiczny w pliku
authorized_keys
lub użyto błędnej nazwy użytkownika dla połączenia SSH.
Jak mogę sprawdzić, czy mój klucz SSH został poprawnie dodany do serwera?
W celu weryfikacji zaloguj się na serwer i sprawdź plik ~/.ssh/authorized_keys
. Twój klucz publiczny powinien być tam wymieniony. Możesz także przetestować połączenie, próbując połączyć się z serwerem za pomocą protokołu SSH. Jeśli nie zapyta o hasło, klucz został dodany poprawnie.
Dlaczego ważne jest ograniczenie uprawnień do plików kluczy SSH?
Ograniczanie uprawnień do plików kluczy SSH ma kluczowe znaczenie dla bezpieczeństwa. Jeśli inni mogą odczytać Twój klucz prywatny, mogą potencjalnie uzyskać dostęp do Twoich serwerów. Dbanie o bezpieczeństwo klucza prywatnego gwarantuje, że tylko Ty będziesz mógł go używać do uwierzytelniania.
Czy zmiany w konfiguracji SSH serwera mogą powodować błędy „Odmowa uprawnień”?
Tak, zmiany w pliku konfiguracyjnym SSH serwera ( etc/ssh/sshd_config
) mogą prowadzić do takich błędów. Na przykład, jeśli PubkeyAuthentication
jest ustawione na no
, serwer nie zaakceptuje uwierzytelniania za pomocą klucza publicznego, co prowadzi do błędu odmowy uprawnień.
Co powinienem zrobić, jeśli mój klient SSH jest nieaktualny?
Jeśli Twój klient SSH jest nieaktualny, może nie obsługiwać nowszych metod uwierzytelniania lub może mieć niezałatane luki w zabezpieczeniach. Ważne jest, aby zaktualizować klienta SSH do najnowszej wersji dostępnej dla Twojego systemu operacyjnego.
Jak zapory sieciowe wpływają na połączenia SSH?
Zapory sieciowe mogą blokować połączenia SSH, jeśli są skonfigurowane tak, aby ograniczać dostęp do portu SSH (wartość domyślna to 22). Upewnij się, że zapora sieciowa zezwala na ruch na porcie używanym przez SSH, aby zapobiec problemom z połączeniem.
Inne zasoby
Jak zainstalować Sendmail w systemie Linux 2024 (krok po kroku)
Podstawowe polecenia systemu Linux dla DevOps (podręcznik)
Podsumowanie
W tym artykule sprawdziliśmy, co powoduje błąd „Błąd: odmowa dostępu (Publickey)” i jak go naprawić. Pamiętaj, że ten błąd jest jak klucz, który nie pasuje do zamka — zazwyczaj oznacza to, że coś jest nie tak ze sposobem konfiguracji lub używania kluczy SSH. Wykonując opisane przez nas kroki, powinieneś być w stanie rozwiązać problem i wrócić do bezpiecznych rozmów z innymi komputerami.
Ludjon, współzałożyciel Codeless, ma głęboką pasję do technologii i Internetu. Dzięki ponad dziesięcioletniemu doświadczeniu w tworzeniu stron internetowych i opracowywaniu powszechnie używanych motywów WordPress, Ludjon dał się poznać jako znakomity ekspert w tej dziedzinie.