Wie man einen öffentlichen/privaten SSH-Schlüssel in Linux generiert

Wenn Sie SSH häufig verwenden, um sich mit einem Remote-Host zu verbinden, ist eine Möglichkeit, Ihren SSH-Server zu sichern, die Verwendung eines öffentlichen/privaten SSH-Schlüssels, sodass kein Passwort über das Netzwerk übertragen wird. Dies kann auch gegen Brute-Force-Angriffe schützen.
In Linux ist das Erstellen eines öffentlichen/privaten SSH-Schlüssels einfach.
- Öffnen Sie ein Terminal. Geben Sie ein:
ssh-keygen -t rsaAlternativ können Sie auch die DSA (Digital Signing Algorithm)-Technologie verwenden, um den öffentlichen/privaten Schlüssel zu erstellen.
ssh-keygen -t dsaHinweis: Es gab viel Diskussion über die Sicherheit von DSA und RSA. Meiner Meinung nach spielt es keine Rolle, welchen der beiden Sie wählen, es sei denn, Sie sind sehr genau und lieben es, sich in die technischen Details zwischen den beiden Technologien zu vertiefen. Beide werden gut funktionieren.
- Im nächsten Bildschirm sollte eine Eingabeaufforderung angezeigt werden, die nach dem Speicherort für den Schlüssel fragt. Der Standardstandort ist der .ssh-Ordner in Ihrem Home-Verzeichnis. Drücken Sie die Eingabetaste, um die Standardeinstellungen zu akzeptieren.

- Sie werden aufgefordert, eine Passphrase einzugeben – NICHT die Passphrase, um sich mit Ihrem Remote-Host zu verbinden, sondern die Passphrase, um den privaten Schlüssel zu entsperren, damit niemand auf Ihren Remote-Server zugreifen kann, selbst wenn sie Ihren privaten Schlüssel in die Hände bekommen. Die Passphrase ist optional. Um sie leer zu lassen, drücken Sie einfach die Eingabetaste.

- Ihr öffentlicher und privater SSH-Schlüssel sollte jetzt generiert sein. Öffnen Sie den Dateimanager und navigieren Sie zum .ssh-Verzeichnis. Sie sollten zwei Dateien sehen: id_rsa und id_rsa.pub.

- Laden Sie Ihren neuen SSH-öffentlichen Schlüssel auf Ihren Remote-Host hoch, indem Sie den folgenden Befehl ausführen:
ssh-copy-id benutzername@remote-host-ip-adresse
- Melden Sie sich bei Ihrem Remote-Host an und bearbeiten Sie Ihre SSH-Konfigurationsdatei:
ssh benutzername@remote-host-ip-adresse
sudo nano /etc/ssh/sshd_configScrollen Sie in der Konfigurationsdatei nach unten und stellen Sie sicher, dass die folgenden Attribute korrekt eingestellt sind:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication noDrücken Sie Strg + O, um die Datei zu speichern, und dann Strg + X, um die Datei zu schließen.

- Starten Sie den SSH-Server auf dem Remote-Host neu:
sudo systemctl restart sshDas war’s. Sie können sich jetzt mit dem folgenden Befehl bei Ihrem Remote-Host anmelden:
ssh benutzername@remote-host-ip-adresse
Häufig gestellte Fragen
Ich habe meinen SSH-Schlüssel auf meinen Remote-Server kopiert und erhalte einen Fehler “Zugriff verweigert”.
Dieses Problem liegt höchstwahrscheinlich an einem Problem mit dem “.ssh”-Ordner Ihres Remote-Hosts. Standardmäßig lehnt der SSH-Daemon eingehende Verbindungen ab, wenn der Konfigurationsordner und die Datei “authorized_keys” nicht die richti gen Berechtigungen haben.
Um die Datei- und Ordners Berechtigungen zu ändern, greifen Sie auf eine lokale Konsole Ihres Remote-Hosts zu, gehen Sie dann in Ihr “home”-Verzeichnis und führen Sie Folgendes aus: chmod 700 /home/$USER/.ssh && chmod 600 /home/$USER/.ssh/authorized_keys. Starten Sie zuletzt den Daemon neu, um Ihre neuen Einstellungen anzuwenden: sudo systemctl restart ssh.
Ist es möglich, mehrere SSH-Schlüssel für denselben Remote-Server zu erstellen?
Ja! Sie müssen jedoch sicherstellen, dass jeder SSH-Schlüssel auf Ihrem Computer einen eindeutigen Dateinamen hat, indem Sie Folgendes ausführen: ssh-keygen -f /home/$USER/.ssh/dateiname.
Stellen Sie außerdem sicher, dass Sie den Schlüssel angeben, den Sie zum Anmelden bei Ihrem Remote-Host verwenden möchten, indem Sie Folgendes ausführen: ssh -i /home/$USER/.ssh/dateiname [email protected].
Ist es möglich, einen neuen SSH-Schlüssel auf einen Remote-Host mit einem alten funktionierenden Schlüssel zu importieren?
Ja! Zuerst importieren Sie Ihren neuen Schlüssel in den SSH-Authentifizierungsagenten: ssh-add. Melden Sie sich dann bei Ihrem alten Computer an und importieren Sie dessen Schlüssel in denselben Authentifizierungsagenten: ssh -A alte.rechner.ip.adresse && ssh-add -c.
Verlassen Sie schließlich den alten Computer, indem Sie Strg + D drücken, und verbinden Sie sich mit Ihrem Remote-Host sowohl mit Ihrem neuen als auch mit Ihrem alten Schlüssel.
Bildnachweis: Unsplash. Alle Änderungen und Screenshots von Ramces Red.