Mój serwer działa w CentOS 5.3. Jestem na komputerze Mac z systemem Leopard. Nie wiem, kto jest za to odpowiedzialny:
Mogę zalogować się do mojego serwera po prostu za pomocą uwierzytelniania hasłem. Przeszedłem wszystkie etapy konfiguracji PKA (jak opisano na stronie http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html ), ale kiedy Używam SSH, odmawia nawet próby weryfikacji klucza publicznego. Za pomocą polecenia
ssh -vvv user@host
(gdzie -vvv zwiększa gadatliwość do maksymalnego poziomu) Otrzymuję następujące istotne dane wyjściowe:
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
a następnie monit o podanie hasła. Jeśli spróbuję wymusić problem
ssh -vvv -o PreferredAuthentications=publickey user@host
dostaję
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.
Tak więc, mimo że serwer twierdzi, że akceptuje metodę uwierzytelniania publickey, a mój klient SSH nalega na to, zostaje mi odrzucone. (Zwróć uwagę na wyraźny brak wiersza „Oferowanie klucza publicznego:” powyżej). Jakieś sugestie?
Odpowiedzi:
Sprawdź, czy twoja maszyna Centos ma:
w sshd_config
i upewnij się, że masz odpowiednie uprawnienia do katalogu ~ / .ssh / maszyny centos.
powinien załatwić sprawę.
źródło
chmod go-w ~/
jeśli tak nie jest.755
(jak Jinyu Liu wspomina poniżej)/etc/ssh/ssh_config
Miałem podobny problem - zdalny komputer nie mógł użyć uwierzytelnienia klucza publicznego do zalogowania się na serwerze CentOs 6. Problem w moim przypadku był związany z SELinuksem - katalog domowy użytkownika próbującego się zalogować miał konteksty bezpieczeństwa wiadomości. Rozwiązałem to za pomocą
restorecon
narzędzia:źródło
/home
tego, co zwykle znajdują się w układzie katalogów/home
.restorecon -Rv /root
1 - sprawdź / etc / ssh / sshd_config, upewnij się, że masz
2- sprawdź bezpieczny dziennik ze zdalnego komputera, przejrzyj szczegółowy dziennik błędów demona sshd. np. w moim Ubuntu
Następnie sprawdź własność i tryby dla katalogu / home / xxx, być może trzeba to uruchomić
źródło
Dokładnie sprawdź, czy twoje uprawnienia są poprawne, a struktura plików (w szczególności pisownia) jest poprawna, zarówno dla komputerów lokalnych, jak i zdalnych. Adres URL, do którego się odwołujesz, zawiera je wszystkie, ale warto sprawdzić, czy masz pasujące dane. Zwykle uprawnienia generują odpowiedni błąd.
Czy sprawdziłeś, czy pole sshd_config na twoim CentOS 5.3 jest ustawione tak, aby zezwalało na PubkeyAuthentication lub RSAAuthentication?
Sprawdź logi serwera SSH w systemie CentOS - może dostarczyć więcej informacji. Nie jestem pewien, czy CentOS sprawdza wpisany na czarnej liście klucz ssh, co robi Debian, ale widziałem odrzucenia ssh publickey, które są względnie ciche jak na wyjście -vvv, ale logi dość jasno wyjaśniają, co się dzieje
źródło
Rozumiem! Okazuje się, że był to problem po stronie klienta. (Myślę, że każdy problem po stronie serwera dałby bardziej przydatne wyjście debugowania.) Z nieznanych mi powodów, na moim komputerze Mac plik / etc / ssh_config miał linię
Skomentowałem tę jedną linię, a teraz wszystko działa dobrze.
źródło
Oprócz trybów plików / katalogów upewnij się, że własność jest prawidłowa! Użytkownik musi posiadać własny katalog domowy, .ssh / i zawarte w nim pliki.
Musiałem biec,
chown -R $user:$user /home/$user
żeby ominąć moje awarie ssh.źródło
Sprawdź także, czy może on automatycznie podać klucz, czy nie, użyj -i ścieżka / do / key, jeśli nie, lub po prostu przetestuj
źródło
Brzmi dla mnie jak problem z konfiguracją. Jak sugerował Daniel, należy sprawdzić dwie rzeczy:
$HOME/.ssh/authorized_keys
są czytelne; iźródło
Sprawdź nazwę użytkownika, za pomocą którego próbujesz się zalogować. Domyślnie jest to nazwa użytkownika na komputerze lokalnym.
źródło
Dane wyjściowe klienta, jak w
ssh -v
, ujawnią, że na pewnym etapie protokołu występuje problem, ale gdy jest to spowodowane czymś na serwerze, klient nie zostanie poinformowany o przyczynie. Sprawdź pliki dziennika serwera, aby dowiedzieć się, co jest nie tak. Prawdopodobnie musisz byćroot
, aby mieć do tego uprawnienia. Na przykład dlasshd
skonfigurowanego logowania do syslog możesz znaleźć wiadomości w/var/log/secure
. Podobnie jak te:Powodem w tym wypadku było (głupi) domyślna
default
od0002
. Oznacza to, że grupa ma dostęp do zapisu. (Groupname = nazwa użytkownika, ale nadal.) Demon SSH nie ufa plikom, które mogą być modyfikowane przez innych niż użytkownik (no iroot
oczywiście). Możesz rozwiązać problem za pomocąchmod
.źródło
Właśnie wpadłem w ten sam problem z dostępem do Fedory Core 16 do centów 5.5
dzienniki i pełne informacje wyglądały dokładnie tak samo
problemem był klucz publiczny, dostał on trochę fałszywych danych, zregenerował go i opublikował na serwerze sshd_server, ty sshd_client wysyła informacje o kluczu, ale nie jest rozpoznawany przez serwer (nie pasuje do żadnego z kluczy w uprawnionych kluczach)
źródło
Kolejny ugryziony przez to. Po długim wyszukiwaniu okazało się, że jawnie karmiłem ssh kluczem publicznym (z opcją -i) zamiast klucza prywatnego. Doh!
źródło