Auf beiden Servern:
rm -r ~/.ssh
Auf Server1:
ssh-keygen ssh bob@server2
Woher weiß server2, dass es den brandneuen Schlüssel akzeptieren soll, den Sie gerade erstellt haben? Es tut nicht Nachdem Sie einen Schlüssel mit ssh-keygen erstellt haben, müssen Sie ihn in die ~ / .ssh / Authorized_keys-Datei von server2 kopieren.
Ich habe sogar versucht, den Inhalt von server1's id_rsa.pub in die Authorized_keys auf Server2 zu setzen
Ja, das ist grundsätzlich erforderlich.
Ok, also zwingen wir es stattdessen, das Passwort zu verwenden:
mv ~/.ssh ~/oldssh ssh bob@server2
Die Fehlermeldung zeigt an, welche Mechanismen der Server Ihnen angeboten hat. In diesem Fall, da es nur bietet publickey
Authentifizierung, Kunden können nicht erzwingen, es Kennwort zu verwenden oder eine andere Methode.
Um die Kennwortauthentifizierung zu verwenden, müssen Sie sie zunächst auf dem Server zulassen/etc/ssh/sshd_config
(mithilfe der Optionen PasswordAuthentication und ChallengeResponseAuthentication).
Sobald dies erledigt ist, können Sie sogar ssh -o PreferredAuthentications=password bob@server2
einen bestimmten Mechanismus bevorzugen. Auf diese Weise müssen Sie die Tasten weder vorübergehend wegbewegen noch zurückschieben.
Das hat mich jahrelang verfolgt.
Klingt, als wäre es an der Zeit, die Systemprotokolle von server2 zu überprüfen. Der SSH-Dienst kann Ihnen sagen, warum er Ihre Schlüssel ablehnt oder ignoriert. Sie benötigen die Option sshd_config LogLevel DEBUG
, um die meisten Informationen zu erhalten.
Alle sshd-Protokollnachrichten werden normalerweise /var/log/auth.log
oder /var/log/security
mindestens, journalctl -b
wenn systemd verwendet wird, im Sicherheitsprotokoll abgelegt .
Der häufigste Grund ist, dass der "defekte" Server das Lesen Ihrer "authorized_keys" -Datei aufgrund von "zu offenen" Dateiberechtigungen verweigert. Wenn beispielsweise ~ / .ssh / weltweit beschreibbar ist oder sogar einem anderen Benutzer gehört, wird dies als Sicherheitsproblem betrachtet und sshd veranlasst, Ihre Datei zu ignorieren. namei -l ~/.ssh/authorized_keys
Überprüfen Sie dies unter Linux .
Überprüfen Sie auch die gesamte Datei sshd_config selbst. Es kann eingerichtet sein, nach Authorized_keys an einem völlig anderen, nicht dem Standard entsprechenden Ort zu suchen.