Auf localhost wird der sshd-Dienst ausgeführt. Erstellt zwei Paare von rsa-Schlüsseln für root
und user1
mit ssh-keygen. Von root / .ssh / id_rsa.pub nach user1 / .ssh / id_rsa.pub kopiert. Die Berechtigungen wurden auf 600 geändert. Versucht ssh -l user1 localhost
und ssh -l root localhost
beide fehlgeschlagen, wobei die Berechtigung verweigert wurde (öffentlicher Schlüssel, tastaturinteraktiv). . Muss ich den öffentlichen Schlüssel ~/.ssh
für beide Benutzer in einen Ordner kopieren ? Was ist falsch an der Konfiguration? Warum kann ich keine Verbindung zu localhost herstellen?
Datei /etc/ssh/sshd_config
:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication yes
UsePAM no
AllowUsers user1 root
PermitRootLogin yes
In der Datei /etc/ssh/ssh_config
sind unkommentierte Zeilen:
RSAAuthentication yes
PasswordAuthentication no
ForwardX11 no
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
PubkeyAuthentication yes
BEARBEITEN 1
Ich versuche, eine Verbindung zu localhost herzustellen. Ich muss mich nur mit öffentlichem Schlüssel bei Benutzer1 anmelden können, während ich mich mit öffentlichem Schlüssel und / oder Passwort als root anmelden kann.
BEARBEITEN 2
Ich habe kopiert cp ~/.ssh/id_rsa.pub /home/user1/.ssh/authorized_keys
. Geänderte Berechtigungen chmod -R 700 ~/.ssh
und chmod -R 700 /home/user1/.ssh
. Neustart von sshd 'service ssh restart'. Aber es scheint nicht zu funktionieren.
BEARBEITEN 4
root@ubuntu:~# ssh-copy-id user1@localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is 34:29:b6:1b:fe:84:eb:82:85:77:87:f6:25:39:61:5a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Permission denied (publickey,keyboard-interactive).
root@ubuntu:~# ssh-copy-id root@localhost
Permission denied (publickey,keyboard-interactive).
Log:
# tail /var/log/auth.log
... ubuntu sshd[8476]: User root not allowed because account is locked
Ein guter SSH-Artikel zur Problembehebung: Probleme und Lösungen
Antworten:
Ich bin auf dieses Problem gestoßen, als ich versucht habe, mich bei einem Konto anzumelden, das kein Kennwort hat, obwohl ich die SSH-Schlüsselpaarauthentifizierung verwende und die Kennwortanmeldung deaktiviert habe. Die Lösung bestand darin, ein Passwort mit meinem Root-Konto festzulegen:
quelle
UsePAM no
ist in dieser Konfiguration vorhanden und wäre nicht anwendbar.Wenn ein Problem mit einem Server auftritt, ist es immer am besten, das
-v
Flag hinzuzufügen , zIn beiden oben genannten Fällen sollte der öffentliche Schlüssel (
id_rsa.pub
) zur Datei ".ssh / authorized_keys" des Remotebenutzers hinzugefügt werden. In Ihrem obigen Fall sowohl an root als auch an user1. Dies kann einfach über den Befehl ssh-copy-id erfolgen ./var/log/secure
enthält Hinweise darauf, warum die Anmeldung nicht erfolgreich war.Verzeichnisberechtigungen sollten 700 [rwx] (nicht 600) [rw-] sein.
quelle
Ich bin vor einiger Zeit auf ein ähnliches Problem gestoßen
Anscheinend kann ein Fehler auftreten, wenn die Dateiberechtigungen richtig sind, die Verzeichnisberechtigungen jedoch nicht die gleiche Art von Berechtigungen sind.
Ich denke auch, dass Sie die Datei von id_rsa.pub in autorisierte_keys umbenennen müssen.
quelle
Einige Hinweise: Da Sie die Kennwortauthentifizierung speziell deaktiviert haben, können Sie sich nicht mit einem Kennwort anmelden. Ich glaube, dass Sie die zulässigen Benutzer mit anderen konfigurieren müssen (Match User ist möglicherweise der beste Weg, um vorwärts zu kommen). Außerdem müssen Sie den Root-Benutzer ausdrücklich zulassen (PermitRootLogin setzt ihn auf yes).
quelle
Es würde Sinn macht uns mehr Informationen über die Einstellungen zu geben , in
/etc/ssh/sshd_config
, insbesondereStrictModes
(grep StrictModes /etc/ssh/sshd_config
).StrictModes
ist die Einstellung, die regelt, wie sensibelsshd
auf die Datei- und Ordnerberechtigungen der jeweiligen Benutzer~/.ssh
und Benutzer reagiert~/.ssh/authorized_keys
. Sie haben uns auch nicht die EinstellungAuthorizedKeysFile
in Ihrem gegebensshd_config
. Sehr relevant, wenn Ihr SSH-Server die Datei an einer anderen Stelle sucht, als Sie sie abgelegt haben.Abgesehen von den bisherigen Antworten kann es dafür eine Vielzahl von Gründen geben. Das Problem ist, dass es, obwohl Sie es versucht haben, nicht genügend Informationen gibt, um sicher zu sein, was falsch ist.
Eine weitere Sache können PAM-Einschränkungen (
UsePAM
insshd_config
) sein. Ubuntu hatte das irgendwann. Wenn für das Benutzerkonto kein Kennwort festgelegt wurde (nur Authentifizierung mit öffentlichem Schlüssel), ist dies nicht zulässig.Aber lassen Sie mich Ihnen eine allgemeine Methode zum Debuggen solcher Probleme geben.
Allgemeine Fehlerbehebung von
sshd
Was ich in solchen Fällen im Allgemeinen sehr nützlich finde, ist zu beginnen,
sshd
ohne es dämonisieren zu lassen ("in den Hintergrund treten und vom Terminal trennen"). Oft sind die Protokolle nicht besonders hilfreich, insbesondere wenn Sie einen Konfigurationsfehler haben (was zumindest nicht der offensichtliche Fall ist).Sie starten es vom Terminal aus wie folgt:
Auf diese Weise erhalten Sie zahlreiche Debug-Ausgaben, die ansonsten (ohne
-d
) nicht angezeigt werden oder mit etwas Glück in den Protokollen landen.NB: das
$(which sshd)
ist die beste Methode zu erfüllensshd
Anforderung eines absoluten Pfad. Andernfalls wird folgende Fehlermeldung angezeigt :sshd re-exec requires execution with an absolute path
. Die-p 10222
Markensshd
hören an diesem alternativ Port, die Konfigurationsdatei überschreiben - dies ist so , dass es nicht mit potenziell laufen kollidiertsshd
Instanzen. Stellen Sie sicher, dass Sie hier einen freien Port auswählen.Diese Methode hat mir viele Male beim Auffinden von Problemen geholfen, sei es bei Authentifizierungsproblemen, Leistungsproblemen oder anderen Arten von Problemen.
stdout
Verwenden Sie$(which sshd) -Ddddp 10222
(beachten Sie das hinzugefügtedd
, um die Ausführlichkeit zu erhöhen), um eine wirklich ausführliche Ausgabe zu erhalten . Weitere Informationen zum Debuggen finden Sie hierman sshd
.Auf der Client-Seite
ssh
kann es-v
(bis zu-vvv
) dauern , bis man wirklich ausführlich darüber ist, was es tut.Die Protokollzeile
Hinweise darauf, dass dies das Problem ist, führen Sie Folgendes aus:
quelle
Unter CentOS kann Selinux die Authentifizierung blockieren. So lösen Sie das Problem mit dem Befehl:
quelle