Moja maszyna niedawno przestała akceptować przychodzące uwierzytelnianie za pomocą klucza publicznego. Mam pulpit Ubuntu 11.04, na który ssh z komputera z systemem Windows. Używam szpachli z korowodem. Jestem w stanie połączyć się, ale tylko z interaktywnym uwierzytelnianiem hasła, nie z moim kluczem rsa, który mam skonfigurowany.
Już sprawdziłem, czy klucz jest wymieniony w ~ / .ssh / uprawnione_ klucze. Jak to naprawić i co sprawdzić?
ssh
authentication
Andrew Redd
źródło
źródło
~
,~/.ssh
i~/.ssh/authorized_keys
to tylko przez ciebie zapisu (w szczególności zezwolenia zapisu żadna grupa). Poszukaj/var/log/auth.log
wpisów w dzienniku utworzonych podczas prób logowania. Skopiuj i wklej je do swojego pytania (edytuj nazwy dla prywatności, jeśli chcesz). Sprawdź także, czy problem występuje wyłącznie po stronie serwera: skopiuj klucz prywatny na maszynę z systemem Linux (musisz przekonwertować plik klucza prywatnego PuTTY na format OpenSSH) i sprawdź, czyssh localhost
działa.Odpowiedzi:
Jeśli uwierzytelnianie za pomocą klucza publicznego nie działa: upewnij się, że po stronie serwera katalog domowy (
~
),~/.ssh
katalog i~/.ssh/authorized_keys
plik są zapisywalne tylko przez ich właściciela . W szczególności żadna z nich nie może być zapisywalna przez grupę (nawet jeśli użytkownik jest sam w grupie).chmod 755
lubchmod 700
jest w porządku,chmod 770
nie jest.Co sprawdzić, gdy coś jest nie tak:
ssh -vvv
aby zobaczyć wiele wyników debugowania. Jeśli opublikujesz pytanie z pytaniem, dlaczego nie możesz połączyć się z ssh, dołącz to wyjście (możesz chcieć anonimizować nazwy hosta i użytkownika)./var/log/auth.log
.źródło
Natknąłem się na to samo i w końcu zorientowałem się, że to dlatego, że zaszyfrowałem mój katalog domowy. SSH nie może odczytać pliku autoryzowanych kluczy, dopóki się nie zalogujesz, więc w zasadzie wymusza najpierw uwierzytelnienie za pomocą hasła. Zobacz sekcję o zaszyfrowanym katalogu domowym pod następującym linkiem:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory
źródło
Jeśli sprawdzisz uprawnienia do katalogów i pojawi się „.” zaraz po nich, możesz mieć włączony selinux, który zepsuje wymianę kluczy i domyślnie manualna identyfikacja hasła.
Możesz wyłączyć SELinux w celu rozwiązywania problemów, postępując zgodnie z instrukcjami tutaj: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html lub po prostu edytuj plik / etc / selinux / config i zmień go z „wymuszania” na „wyłączony”.
Mam nadzieję że to pomoże.
źródło
chmod 600 ~/.ssh/authorized_keys
- plik można było zapisać w grupie. (via pyrosoft.co.uk/blog/2013/01/12/… )restorecon ~ -R
) jest dobrym punktem wyjścia.Upewnię się, że masz poprawne ustawienia w / etc / ssh / sshd_config.
Aby wymusić użycie tylko PKI i nie zezwalać na hasła, znajdź wiersz
w pliku usuń komentarz i ustaw go na
Przeczytałbym również bilans ustawień, aby upewnić się, że mają one sens. W szczególności postaraj się upewnić, że używasz kluczy RSA, ponieważ wiadomo, że DSA jest zagrożone.
źródło
Jedną z możliwych przyczyn tego problemu jest to, że masz klucze DSA, ale teraz SSH (najwyraźniej) domyślnie wymaga kluczy RSA. Mam problem podczas aktualizacji do 16.04. Możesz zobaczyć więcej tutaj, ale krótka odpowiedź jest następująca
~/.ssh/config
:źródło
Rozwiązałem ten problem, usuwając komentarz „PasswordAuthentication yes” w / etc / ssh / sshd_config.
źródło
Z powodu potrzeby rozwiązywania problemów z komunikacją między dwoma różnymi komputerami, miałem dwa klucze prywatne
~/.ssh
po stronie klienta.Zamiast konfigurować każdy host serwera z odpowiednim kluczem prywatnym,
~/.ssh/identity
tak jak powinienem to zrobić, miałem skonfigurowany dla wszystkich hostów klucz pomocniczy (aw tym przypadku nieprawidłowy):Korekta
~/.ssh/identity
rozwiązała problem:źródło
Po prostu miałem ten sam problem, ale zmiana uprawnień
chmod
nie pomogła, ponieważ okazało się, że nie mam prawa własności do~/.ssh/authorized_keys
pliku. Możesz zmienić własność.ssh
katalogu za pomocą:źródło
Jakoś to działało dla mnie:
root @ kaiser: ~ # vim / etc / ssh / sshd_config
Zmień tę linię z tak na nie 28 StrictModes nie
Spróbuj ponownie
sysadmin @ suselinux1: ~> con sysadmin kaiser Witamy w Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)
Ostatnie logowanie: pt. 9 lis 15:40:11 2012 od 10.1.3.25 sysadmin @ kaiser: ~ $ data vie lis 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $
źródło
sshd
dokumentów, które nie należą do kategorii „miłej lektury w sobotę”