SSH „abgelehnter Schlüssel“ nur mit öffentlicher IP, funktioniert lokal

SSH „abgelehnter Schlüssel“ nur mit öffentlicher IP, funktioniert lokal

Mein Problem ist also, dass ich von meinem Client (Windows 7 über PuTTY) keine Verbindung zu meinem SSH-Server (läuft unter Linux Mint Sarah) herstellen kann. Funktioniert nur über die lokale IP.

Sowohl Server als auch Client befinden sich im selben Subnetz. Der SSH-Server ist so eingerichtet, dass nur SSH-RSA-Schlüsselverbindungen ohne Kennwörter zulässig sind. Ich habe einen Schlüssel installiert und dieser funktioniert wie gewünscht, wenn ich mich mit der lokalen IP des Servers verbinde.

Ich habe Port 22 in der Firewall meines WAN-Geräts geöffnet und kann bestätigen, dass es eine Verbindung zum richtigen Feld herstellt, wenn ich die öffentliche IP versuche, da das Ein-/Ausschalten der Firewall des Servers Ablehnungen verursacht. Die SSH-Verbindung erreicht den Server also erfolgreich und versucht, sich mit dem privaten Schlüssel zu authentifizieren, schlägt jedoch mit folgendem Fehler fehl:

Server refused our key

Klingt offensichtlich, aber ich verstehe nicht, warum die Authentifizierung des Schlüssels fehlschlägt, wenn ich mit demselben Schlüssel lokal erfolgreich bin. Dieses Problem war schwer zu untersuchen, da die meisten Ergebnisse auf falsche Portweiterleitungen zurückzuführen sind.

Das habe ich versucht (nachDasLeitfaden, unter anderem):

  • Alle Pakete auf dem Server aktualisiert und apt-get install openssh-server.
  • Ich /etc/ssh/sshd_confighabe Folgendes eingestellt:
    • Port 22
    • AllowUsers user
    • PasswordAuthentication no
    • UsePAM no
  • In PuTTYgen wird ein öffentlicher und ein privater Schlüssel erstellt, der in einem Verzeichnis (unter Windows) gespeichert wird.
  • Kopiert in /home/user/.ssh/authorized_keysden Teil des öffentlichen Schlüssels, der mit beginnt ssh-rsaund mit endet, == commentin eine einzelne Zeile mit einem Wagenrücklauf am Ende.
  • chmod 700 ~/.sshdie unter aufgeführt ls -alistdrwx------
  • chmod 644 ~/.ssh/authorized_keysdie unter aufgeführt ls -list-rw-r--r--
  • Legen Sie in PuTTY unter SSH > Auth „Privater Schlüssel zur Authentifizierung“ auf den zuvor generierten privaten Schlüssel fest.
  • Verbindung zu Port 22 herstellen als user@<local_ip>... erfolgreich.
  • user@<public_ip>Stellen Sie als ... eine Verbindung zu Port 22 her Server refused our key.

Als Bonus gibt tailing /var/log/auth.logmir nichts, wenn der Schlüssel abgelehnt wird. Bei einer lokalen Verbindung wird eine Accepted publickeyZeile gedruckt.

Und schließlich, und ich bin nicht sicher, ob das relevant ist, erhalte ich beim Versuch, mit FileZilla über SFTP eine Verbindung auf der öffentlichen IP-Adresse herzustellen, diesen Fehler:

Error:  The first key-exchange algorithm supported by the server is diffie-hellman-group1-sha1, which is no longer secure. Aborting connection.
Error:  Could not connect to server

Zu sagen, dass ich ein fortgeschrittener Linux-Benutzer bin, wäre übertrieben, also übersehe ich vielleicht etwas. Ich hoffe, ich habe mein Problem klar ausgedrückt. Ich bin für jede Hilfe dankbar!


Bearbeiten: Ausgabe von PuTTYs SSH-Paketen und Rohdaten (größtenteils Müll, also eingeschlossen, was ich für menschenlesbar hielt):

Event Log: Looking up host "<omitted>"
Event Log: Connecting to <omitted> port 22
Event Log: We claim version: SSH-2.0-PuTTY_Release_0.67
Event Log: Server version: SSH-2.0-dropbear_0.46
Event Log: We believe remote version has SSH-2 channel request bug
Event Log: Using SSH protocol version 2
Event Log: Using Diffie-Hellman with standard group "group1"
Event Log: Doing Diffie-Hellman key exchange with hash SHA-1
Event Log: Host key fingerprint is:
Event Log: ssh-rsa 1040 <omitted>
Outgoing packet #0x2, type 21 / 0x15 (SSH2_MSG_NEWKEYS)
Event Log: Initialised triple-DES CBC client->server encryption
Event Log: Initialised HMAC-SHA1 client->server MAC algorithm
Incoming packet #0x2, type 21 / 0x15 (SSH2_MSG_NEWKEYS)
Event Log: Initialised triple-DES CBC server->client encryption
Event Log: Initialised HMAC-SHA1 server->client MAC algorithm
Incoming packet #0x4, type 51 / 0x33 (SSH2_MSG_USERAUTH_FAILURE)
  00000000  00 00 00 12 70 75 62 6c 69 63 6b 65 79 2c 70 61  ....publickey,pa
  00000010  73 73 77 6f 72 64 00                             ssword.
Event Log: Server refused our key

Antwort1

Diese Zeile lässt mich vermuten, dass Sie tatsächlich eine Verbindung zu Ihrem Router oder Modem herstellen, wenn Sie eine Verbindung zu Port 22 Ihrer öffentlichen IP herstellen.

Event Log: Server version: SSH-2.0-dropbear_0.46

Wenn Sie sich über die interne IP-Adresse verbinden, erhalten Sie dann dieselbe Serverversionszeile? Wenn nicht, müssen Sie wahrscheinlich SSH auf Ihrem Modem und/oder Router deaktivieren und (falls noch nicht geschehen) eine Portweiterleitung für Port 22 zur internen IP-Adresse Ihres Linux-Servers einrichten.

Wenn Sie SSH auf Ihrem Modem/Router nicht deaktivieren können, können Sie versuchen, einen anderen Port (z. B. 2222) an Port 22 auf Ihrem Linux-Server weiterzuleiten.

verwandte Informationen