Próbuję zalogować się na mój serwer ssh przy użyciu nazwy użytkownika i hasła, ale pojawia się ten błąd po wpisaniu poprawnego hasła:
Permission denied, please try again.
Mogę jednak zalogować się za pomocą klucza publicznego na innym komputerze, ale NIE wyłączyłem zwykłego uwierzytelniania hasłem. Jedyne, co wyłączyłem, to logowanie do roota.
Oto mój plik sshd_config:
# Plik konfiguracyjny wygenerowany przez pakiet # Szczegółowe informacje można znaleźć na stronie podręcznika sshd_config (5) # Jakie porty, adresy IP i protokoły nasłuchują Port 22 # Użyj tych opcji, aby ograniczyć, z którymi interfejsami / protokołami sshd się połączy #ListenAddress :: #ListenAddress 0.0.0.0 Protokół 2 # HostKeys dla wersji protokołu 2 HostKey / etc / ssh / ssh_host_rsa_key HostKey / etc / ssh / ssh_host_dsa_key HostKey / etc / ssh / ssh_host_ecdsa_key # Bezpieczeństwo Oddzielenie jest włączone dla bezpieczeństwa UsePrivilegeSeparation tak # Czas życia i rozmiar efemerycznego klucza wersji 1 serwera KeyRegenerationInterval 3600 ServerKeyBits 768 # Logowanie SyslogFacility AUTH LogLevel INFO # Uwierzytelnianie: LoginGraceTime 120 PermitRootLogin no StrictModes tak RSA Uwierzytelnienie tak Pubkey Uwierzytelnienie tak #AuthorizedKeysFile% h / .ssh / Author_keys # Nie czytaj plików ~ / .rhosts i ~ / .shost użytkownika IgnoreRhosts tak # Aby to zadziałało, potrzebujesz także kluczy hosta w / etc / ssh_known_hosts RhostsRSA Nr uwierzytelnienia # podobne dla wersji protokołu 2 Uwierzytelnienie na podstawie hosta # Odkomentowanie, jeśli nie ufasz ~ / .ssh / known_hosts dla RhostsRSAAuthentication #IgnoreUserKnownHosts tak # Aby włączyć puste hasła, zmień na tak (NIE ZALECANE) PermitEmptyPasswords no # Zmień na tak, aby włączyć hasła wyzwanie-odpowiedź (strzeż się problemów z # niektóre moduły i wątki PAM) Wyzwanie Odpowiedź Nr uwierzytelnienia # Zmień na no, aby wyłączyć tunelowane hasła w postaci czystego tekstu Uwierzytelnianie hasła tak # Opcje Kerberos # Kerberos Numer uwierzytelnienia #KerberosGetAFSToken nr #KerberosOrLocalPasswd tak #KerberosTicketCleanup tak # Opcje GSSAPI #GSSAPIANumer uwierzytelnienia #GSSAPICleanupCredentials yes X11 Przekazywanie tak X11DisplayOffset 10 PrintMotd no PrintLastLog tak TCPKeepAlive tak #UseLogin no #MaxStartups 10:30:60 #Banner /etc/issue.net # Zezwól klientowi na przekazywanie regionalnych zmiennych środowiskowych AcceptEnv LANG LC_ * Podsystem sftp / usr / lib / openssh / sftp-server # Ustaw na „tak”, aby włączyć uwierzytelnianie PAM, przetwarzanie konta, # i przetwarzanie sesji. Jeśli ta opcja jest włączona, uwierzytelnianie PAM będzie działać # być dozwolone przez ChallengeResponseAuthentication i # Hasło uwierzytelnienia. W zależności od konfiguracji PAM, # Uwierzytelnianie PAM przez ChallengeResponseAuthentication może zostać pominięte # ustawienie „PermitRootLogin bez hasła”. # Jeśli chcesz tylko, aby konto PAM i kontrole sesji działały bez # Uwierzytelnianie PAM, następnie włącz to, ale ustaw Uwierzytelnianie hasłem # i ChallengeResponse Uwierzytelnienie na „nie”. UsePAM tak IgnoreUserKnownHosts no Uwierzytelnianie hasła tak
Dodałem ostatnie 2 linie w ostatniej próbie uruchomienia go. (Mam je na moich innych vps i oni tam pracują)
Oto lista katalogu ~ / .ssh / mojego użytkownika:
ls -la /home/skerit/.ssh razem 16 drwx ------ 2 skerit skerit 4096 2011-06-25 15:11. drwxr-xr-x 4 skerit skerit 4096 07.07.2011 21:05 .. -rw-r - r-- 1 skerit skerit 1882 2011-06-25 15:15 upoważnione klucze -rw-r - r-- 1 skerit skerit 884 2011-06-23 22:59 znane_hosty
To jest wynik działania / usr / sbin / sshd -d:
debug1: żądanie userauth dla użytkownika usługi skerit usługi ssh-connection none debug1: próba 0 niepowodzenia 0 debug1: PAM: inicjowanie „skerit” debug1: PAM: ustawienie PAM_RHOST na „82.197.70.70” debug1: PAM: ustawienie PAM_TTY na „ssh” debug1: żądanie userauth dla użytkownika skerit service ssh-connection method publickey debug1: próba 1 niepowodzenia 0 debug1: sprawdź, czy pkalg / pkblob są dopuszczalne debug1: Sprawdzanie pliku czarnej listy /usr/share/ssh/blacklist.RSA-2048 debug1: Sprawdzanie pliku czarnej listy /etc/ssh/blacklist.RSA-2048 debug1: identyfikator tymczasowo_użytkownika: 1000/1000 (e = 0/0) debug1: próba pliku klucza publicznego /home/skerit/.ssh/authorized_keys debug1: fd 4 kasowanie O_NONBLOCK debug1: restore_uid: 0/0 debug1: identyfikator tymczasowo_użytkownika: 1000/1000 (e = 0/0) debug1: próba pliku klucza publicznego /home/skerit/.ssh/authorized_keys2 debug1: Nie można otworzyć autoryzowanych kluczy „/home/skerit/.ssh/authorized_keys2”: Brak takiego pliku lub katalogu debug1: restore_uid: 0/0 Błąd publickey dla skerit z portu 82.197.70.70 57154 ssh2 debug1: żądanie userauth dla hasła użytkownika połączenia usługi ssh-połączenia debug1: próba 2 niepowodzenia 1 debug1: PAM: uwierzytelnianie hasłem nie powiodło się dla skerit: błąd uwierzytelnienia Nieudane hasło do skerit z portu 82.197.70.70 57154 ssh2
Próbowałem następnie zalogować się do serwera ssh z serwera ssh (lokalnie), używając tej samej nazwy użytkownika i hasła, i zadziałało. To było w pliku auth.log:
8 lipca 12:21:50 vpsnl1 sshd [27298]: debug1: nie można otworzyć pliku klucza „/ etc / ssh / ssh_host_ecdsa_key”: Brak takiego pliku lub katalogu 8 lipca 12:21:50 vpsnl1 sshd [27298]: błąd: Nie można załadować klucza hosta: / etc / ssh / ssh_host_ecdsa_key 8 lipca 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): błąd uwierzytelnienia; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 użytkownik = skerit 8 lipca 12:23:50 vpsnl1 sshd [27439]: Serwer nasłuchuje na porcie 22.0.0.0. 8 lipca 12:23:50 vpsnl1 sshd [27439]: Serwer nasłuchuje na :: porcie 22. 8 lipca 12:24:07 vpsnl1 sshd [27458]: błąd: Nie można załadować klucza hosta: / etc / ssh / ssh_host_ecdsa_key 8 lipca 12:24:14 vpsnl1 sshd [27458]: Akceptowane hasło do skerit z portu 127.0.0.1 57667 ssh2 8 lipca 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: session): sesja otwarta dla użytkownika skerit przez (uid = 0) 8 lipca 12:24:25 vpsnl1 sshd [27471]: Otrzymano rozłączenie z 127.0.0.1: 11: rozłączone przez użytkownika 8 lipca 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): sesja zamknięta dla użytkownika skerit
su skerit
na swoim koncie?Odpowiedzi:
Czy jesteś pewien, że konto użytkownika, do którego próbujesz uzyskać dostęp, jest poprawnie skonfigurowane? Jeśli zalogujesz się jako root w systemie, czy możesz
su
przejść do konta użytkownika?Co widzisz w dziennikach po nieudanej próbie połączenia? W wielu systemach sshd zaloguje się do czegoś
/var/log/secure
lub/var/log/auth.log
. Ponadto zauważam, że maszPasswordAuthentication
włączoną, aleChallengeResponseAuthentication
wyłączoną. Czy widzisz to samo zachowanie, jeśli włączyszChallengeResponseAuthentication
?Oto kilka ogólnych kroków diagnostycznych, które należy zastosować w przypadku problemów z ssh:
Włącz pełną diagnostykę w ssh:
Spowoduje to, że klient będzie wyświetlał różne komunikaty diagnostyczne podczas negocjacji połączenia. Często daje to wskazówkę dotyczącą problemu.
Uruchom serwer w trybie debugowania.
Na serwerze zatrzymaj sshd, a następnie uruchom go z wiersza poleceń w następujący sposób:
Spowoduje to pełne logowanie do debugowania
stderr
, które bardzo często będzie zawierać przydatne informacje.Jeśli żadna z tych rzeczy nie pomoże ci zrozumieć, co się dzieje, czy dodałbyś wynik do swojego pytania?
źródło