Ich habe eine Ubuntu 22.04.1-Installation und verwende die Pubkey- und Private-Key-Authentifizierung, um mich bei SSH anzumelden.
Hier sind die Schritte, die ich unternommen habe
- Ich habe zuerst ein Schlüsselpaar auf meinem Mac erstellt.
- Ich ging dann auf den Server und bearbeitete,
/etc/ssh/sshd_config
um einen neuen Port für den SSH-Login hinzuzufügen - Habe diesen Port in der Firewall (UFW) geöffnet und den Standardport 22 geschlossen.
- Ich habe versucht,
ssh-copy-id -i /path/to/public/key root@host
den öffentlichen Schlüssel auf den Server zu kopieren. - Dann
/etc/ssh/sshd_config
erneut, um die Kennwortauthentifizierung zu untersagen - SSHD neugestartet und die Verbindung mit Root getestet. Die Verbindung funktionierte einwandfrei.
- Ich habe die Passwortauthentifizierung wieder aktiviert und SSH mit einem meiner Sudo-Benutzer (nicht root) mit Benutzer + Passwort über den neuen Port getestet. Die Verbindung funktionierte einwandfrei.
- Ich habe versucht,
ssh-copy-id -i /path/to/public/key user@host
den öffentlichen Schlüssel für diesen bestimmten Benutzer auf den Server in die Datei .ssh/authorised_keys zu kopieren. Das Verfahren hat keine Fehler zurückgegeben und gemeldet, dass ein Schlüssel kopiert wurde. Ich habe mich beim Server angemeldet und die Datei authorized_keys noch einmal überprüft und der Schlüssel war tatsächlich da. - Dann
/etc/ssh/sshd_config
erneut, um die Kennwortauthentifizierung zu untersagen - SSHD neu gestartet und die Verbindung mit dem Benutzer getestet.Hier habe ich ein ProblemDer Benutzer kann sich nicht anmelden. Beim Versuch erhalte ich eine Fehlermeldung:
Permission denied (publickey)
. Wenn ich die Kennwortauthentifizierung wieder aktiviere, kann ich mich problemlos verbinden, aber immer noch ohne die Schlüssel. Nur eine Standardverbindung mit Benutzername und Kennwort.
Das Schlüsselpaar ist getestet, da ich für den Root-Benutzer genau dieselbe Kombination verwende. Ich möchte Permitrootlogin deaktivieren, kann es aber nicht. Irgendwelche Ideen?
Bearbeiten: Ich bin dem Rat von @Jos gefolgt und habe eine ausführliche Anmeldung mit Root und eine mit Benutzer durchgeführt. Hier sind die beiden Ergebnisse. Ich habe alle sensiblen Informationen und Schlüssel, IPs usw. herausgefiltert und die Ergebnisse in Screenshots umgewandelt:
und der Benutzer (der keine Verbindung herstellen kann):
Bearbeiten: @steeldriver hat vorgeschlagen, ein namei auszuführen, um zu prüfen, ob die authorized_keys-Dateien zu freizügig sind. Hier ist die Ausgabe:
| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys