Anmeldung am SSH-Server: Berechtigung verweigert, bitte erneut versuchen

9

Ich versuche, mich mit einem Benutzernamen und einem Kennwort bei meinem SSH-Server anzumelden, erhalte jedoch diesen Fehler, nachdem ich das richtige Kennwort eingegeben habe:

Permission denied, please try again.

Ich kann mich zwar mit einem Pubkey auf einem anderen Computer anmelden, habe jedoch die reguläre Kennwortauthentifizierung NICHT deaktiviert. Das einzige, was ich deaktiviert habe, waren Root-Logins.

Hier ist meine sshd_config-Datei:

# Paketgenerierte Konfigurationsdatei
# Weitere Informationen finden Sie in der Manpage sshd_config (5)

# Auf welche Ports, IPs und Protokolle wir achten
Port 22
# Verwenden Sie diese Optionen, um einzuschränken, an welche Schnittstellen / Protokolle sshd gebunden wird
#ListenAddress ::
#ListenAddress 0.0.0.0
Protokoll 2
# HostKeys für Protokoll Version 2
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
#Privilege Separation ist aus Sicherheitsgründen aktiviert
UsePrivilegeSeparation ja

# Lebensdauer und Größe des kurzlebigen Serverschlüssels der Version 1
KeyRegenerationInterval 3600
ServerKeyBits 768

# Protokollierung
SyslogFacility AUTH
LogLevel INFO

# Authentifizierung:
LoginGraceTime 120
PermitRootLogin-Nr
StrictModes ja

RSAAuthentication ja
PubkeyAuthentication ja
#AuthorizedKeysFile% h / .ssh / autorisierte_Tasten

# Lesen Sie nicht die Dateien ~ / .rhosts und ~ / .shosts des Benutzers
IgnoreRhosts ja
# Damit dies funktioniert, benötigen Sie auch Hostschlüssel in / etc / ssh_known_hosts

RhostsRSAAuthentication No.
# ähnlich für Protokoll Version 2
HostbasedAuthentication No.
# Kommentar entfernen, wenn Sie ~ / .ssh / unknown_hosts für RhostsRSAAuthentication nicht vertrauen
#IgnoreUserKnownHosts ja

# Um leere Passwörter zu aktivieren, ändern Sie in yes (NICHT EMPFOHLEN).
PermitEmptyPasswords-Nr

# Wechseln Sie zu yes, um Challenge-Response-Passwörter zu aktivieren (Vorsicht vor Problemen mit
# einige PAM-Module und Threads)
ChallengeResponseAuthentication-Nr

# Wechseln Sie zu no, um getunnelte Klartextkennwörter zu deaktivieren
PasswordAuthentication ja

# Kerberos-Optionen 
#KerberosAuthentication No.
#KerberosGetAFSToken no
#KerberosOrLocalPasswd ja
#KerberosTicketCleanup ja

# GSSAPI-Optionen
#GSSAPIAuthentication no
#GSSAPICleanupCredentials ja

X11Forwarding ja
X11DisplayOffset 10
PrintMotd-Nr
PrintLastLog ja
TCPKeepAlive ja
#UseLogin no

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# Ermöglichen Sie dem Client, Umgebungsvariablen für das Gebietsschema zu übergeben
AcceptEnv LANG LC_ *

Subsystem sftp / usr / lib / openssh / sftp-server

# Setzen Sie dies auf 'Ja', um die PAM-Authentifizierung, die Kontoverarbeitung, zu aktivieren.
# und Sitzungsverarbeitung. Wenn dies aktiviert ist, wird die PAM-Authentifizierung durchgeführt
# durch die ChallengeResponseAuthentication und erlaubt sein
# PasswordAuthentication. Abhängig von Ihrer PAM-Konfiguration
# Die PAM-Authentifizierung über ChallengeResponseAuthentication wird möglicherweise umgangen
# die Einstellung von "PermitRootLogin ohne Passwort".
# Wenn Sie nur möchten, dass die PAM-Konto- und Sitzungsprüfungen ohne ausgeführt werden
# PAM-Authentifizierung, aktivieren Sie diese, setzen Sie jedoch PasswordAuthentication
# und ChallengeResponseAuthentication auf 'no'.
UsePAM ja 
IgnoreUserKnownHosts no
PasswordAuthentication ja

Ich habe die letzten beiden Zeilen hinzugefügt, um es zum Laufen zu bringen. (Ich habe sie auf meinem anderen vps und sie arbeiten dort)

Hier ist die Liste des Verzeichnisses ~ / .ssh / meines Benutzers:

ls -la /home/skerit/.ssh
insgesamt 16
drwx ------ 2 skerit skerit 4096 2011-06-25 15:11.
drwxr-xr-x 4 skerit skerit 4096 2011-07-07 21:05 ..
-rw-r - r-- 1 Skerit Skerit 1882 25.06.2011 15:15 autorisierte_Tasten
-rw-r - r-- 1 Skerit Skerit 884 2011-06-23 22:59 know_hosts 

Dies ist die Ausgabe von / usr / sbin / sshd -d:

debug1: userauth-Anfrage für Benutzer-Skerit-Dienst ssh-Verbindungsmethode keine
Debug1: Versuch 0 Fehler 0
debug1: PAM: Initialisierung für "skerit"
debug1: PAM: PAM_RHOST auf "82.197.70.70" setzen
debug1: PAM: PAM_TTY auf "ssh" setzen
debug1: userauth-Anfrage für den Benutzer-Skerit-Dienst SSH-Verbindungsmethode publickey
Debug1: Versuch 1 Fehler 0
debug1: teste ob pkalg / pkblob akzeptabel sind
debug1: Überprüfen der Blacklist-Datei /usr/share/ssh/blacklist.RSA-2048
debug1: Überprüfen der Blacklist-Datei /etc/ssh/blacklist.RSA-2048
debug1: vorübergehend_use_uid: 1000/1000 (e = 0/0)
debug1: Versuch der öffentlichen Schlüsseldatei /home/skerit/.ssh/authorized_keys
debug1: fd 4 löscht O_NONBLOCK
debug1: restore_uid: 0/0
debug1: vorübergehend_use_uid: 1000/1000 (e = 0/0)
debug1: Versuch der öffentlichen Schlüsseldatei /home/skerit/.ssh/authorized_keys2
debug1: Autorisierte Schlüssel konnten nicht geöffnet werden '/home/skerit/.ssh/authorized_keys2': Keine solche Datei oder kein solches Verzeichnis
debug1: restore_uid: 0/0
Publickey für Skerit von 82.197.70.70 Port 57154 ssh2 fehlgeschlagen
debug1: userauth-Anfrage für das Kennwort der SSH-Verbindungsmethode des Benutzer-Skerit-Dienstes
Debug1: Versuch 2 Fehler 1
debug1: PAM: Kennwortauthentifizierung für Skerit fehlgeschlagen: Authentifizierungsfehler
Passwort für Skerit von 82.197.70.70 Port 57154 ssh2 fehlgeschlagen 

Ich habe dann versucht, mich vom SSH-Server (lokal) mit dem gleichen Benutzernamen und Passwort beim SSH-Server anzumelden, und es hat funktioniert. Dies war in der Datei auth.log:

8. Juli 12:21:50 vpsnl1 sshd [27298]: debug1: Schlüsseldatei '/ etc / ssh / ssh_host_ecdsa_key' konnte nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
8. Juli 12:21:50 vpsnl1 sshd [27298]: Fehler: Hostschlüssel konnte nicht geladen werden: / etc / ssh / ssh_host_ecdsa_key
8. Juli 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): Authentifizierungsfehler; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 user =
Skerit
8. Juli 12:23:50 vpsnl1 sshd [27439]: Server überwacht 0.0.0.0 Port 22.
8. Juli 12:23:50 vpsnl1 sshd [27439]: Server überwacht :: Port 22.
8. Juli 12:24:07 vpsnl1 sshd [27458]: Fehler: Hostschlüssel konnte nicht geladen werden: / etc / ssh / ssh_host_ecdsa_key
8. Juli 12:24:14 vpsnl1 sshd [27458]: Akzeptiertes Passwort für Skerit von 127.0.0.1 Port 57667 ssh2
8. Juli 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: session): Sitzung für Benutzer-Skerit geöffnet von (uid = 0)
8. Juli 12:24:25 vpsnl1 sshd [27471]: Trennung von 127.0.0.1: 11 empfangen: Vom Benutzer getrennt
8. Juli 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): Sitzung für Benutzer-Skerit geschlossen 
Skerit
quelle
Könnten Sie Ihre ssh-config hinzufügen?
Bart De Vos
Okay, Konfigurationsdatei hinzugefügt!
Skerit
Wie wäre es mit Berechtigungen für .ssh? Könnten Sie ls -la ~ / .ssh auf dem Server posten?
mkudlacek
Ok, ich habe die Liste der Dateien des Benutzers hinzugefügt, unter dem ich mich anmelden möchte.
Skerit
1
Authorized_keys sollten meiner Meinung nach nicht weltlesbar sein, aber es erklärt nicht, warum Sie sich nicht mit einem Passwort anmelden können. Können Sie su skeritin Ihrem Konto tun ?
mkudlacek

Antworten:

9

Sind Sie sicher, dass das Benutzerkonto, auf das Sie zugreifen möchten, korrekt konfiguriert ist? Wenn Sie sich als Root im System anmelden, können Sie susich beim Benutzerkonto anmelden ?

# su - username

Was sehen Sie in Ihren Protokollen nach einem fehlgeschlagenen Verbindungsversuch? Auf vielen Systemen protokolliert sshd bei etwas /var/log/secureoder /var/log/auth.log. Außerdem stelle ich fest, dass Sie PasswordAuthenticationaktiviert, aber ChallengeResponseAuthenticationdeaktiviert haben. Sehen Sie dasselbe Verhalten, wenn Sie es aktivieren ChallengeResponseAuthentication?

Hier sind einige allgemeine Diagnoseschritte, die Sie bei SSH-Problemen ausführen sollten:

  • Aktivieren Sie die ausführliche Diagnose in ssh:

    ssh -v host.example.com
    

    Dies führt dazu, dass der Client beim Aushandeln der Verbindung verschiedene Diagnosemeldungen ausgibt. Dies liefert häufig einen Hinweis auf das Problem.

  • Führen Sie den Server im Debug-Modus aus.

    Stoppen Sie auf Ihrem Server sshd und führen Sie es dann wie folgt über die Befehlszeile aus:

    /usr/sbin/sshd -d
    

    Dies führt zu einer ausführlichen Debug-Protokollierung stderr, die sehr oft nützliche Informationen enthält.

Wenn Ihnen keines davon hilft, herauszufinden, was los ist, würden Sie die Ausgabe zu Ihrer Frage hinzufügen?

Larsks
quelle
Ok, ich habe die Ausgabe hinzugefügt. Grundsätzlich gilt: Wenn ich eine Remote-Anmeldung mache, heißt es, dass das Passwort nicht gut ist. Wenn ich eine lokale Anmeldung versuche, heißt es, dass das Passwort in
Ordnung
2
Es WAR das Passwort. Ich habe das Passwort über eine Webkonsole (eine Java-Anwendung) geändert, und obwohl das eingegebene Passwort IDENTISCH zu dem war, was ich in meine Kittkonsole eingegeben habe, müssen sich die ASCII-Werte irgendwie unterschieden haben. Ich habe es in etwas Einfacheres geändert, mich durch Kitt korrekt angemeldet und es wieder geändert. Jetzt gehts.
Skerit
@skerit - hatte wahrscheinlich ein Problem mit der Zeichenkodierung - vielleicht UTF8 gegen ASCII?
Warren
Freut mich zu hören, dass die Dinge funktionieren!
Larsks
Hatte das gleiche Problem wie @skerit, nachdem eine Kennwortänderung über die WebO-Konsole von DigitalOcean vorgenommen wurde.
Daniel