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

Generate Ssh Key Linux 00 Featured Image

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.

  1. Öffnen Sie ein Terminal. Geben Sie ein:
ssh-keygen -t rsa

Alternativ können Sie auch die DSA (Digital Signing Algorithm)-Technologie verwenden, um den öffentlichen/privaten Schlüssel zu erstellen.

ssh-keygen -t dsa

Hinweis: 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.

  1. 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.

Generate Ssh Key Linux 01 Create New Key

  1. 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.

Generate Ssh Key Linux 02 Add New Passphrase

  1. 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.

Generate Ssh Key Linux 03 List Ssh Folder Files

  1. 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

Generate Ssh Key Linux 04 Copy Key To Remote Host

  1. 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_config

Scrollen Sie in der Konfigurationsdatei nach unten und stellen Sie sicher, dass die folgenden Attribute korrekt eingestellt sind:

RSAAuthentication yes  
PubkeyAuthentication yes  
PasswordAuthentication no

Drücken Sie Strg + O, um die Datei zu speichern, und dann Strg + X, um die Datei zu schließen.

Generate Ssh Key Linux 05 Modify Remote Host Ssh Daemon

  1. Starten Sie den SSH-Server auf dem Remote-Host neu:
sudo systemctl restart ssh

Das war’s. Sie können sich jetzt mit dem folgenden Befehl bei Ihrem Remote-Host anmelden:

ssh benutzername@remote-host-ip-adresse

Generate Ssh Key Linux 06 Seamless Ssh Login Remote Host

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.