SSH (Secure Shell) ist ein Netzwerkkommunikationsprotokoll, das eine sichere Remote-Verwaltung von Computern ermöglicht. Es verschlüsselt alle übertragenen Daten, was es besonders nützlich macht, wenn es mit Remote-Servern arbeitet. Wenn Sie SSH verwenden, werden Benutzer normalerweise mit einem Passwort autorisiert. Es wird jedoch empfohlen, die Schlüsselautorisierung zu verwenden, um die Sicherheit zu erhöhen.
Die SSH-Authentifizierung per Schlüssel ist sicherer als die Passwortautorisierung. Dies bedeutet, dass der Benutzer, anstatt jedes Mal ein Passwort einzugeben, wenn er sich mit dem Server verbindet, ein Schlüsselpaar generiert — ein öffentliches und ein privates Schlüsselpaar. Der öffentliche Schlüssel wird auf dem Server gespeichert und der private Schlüssel wird auf dem Computer des Benutzers gespeichert. Wenn Sie eine Verbindung zum Server herstellen, prüft SSH, ob der Benutzer über einen privaten Schlüssel verfügt, und authentifiziert sich automatisch, ohne dass ein Passwort eingegeben werden muss.
Das Einrichten der SSH-Autorisierung per Schlüssel ist ein einfacher Prozess, der selbst von unerfahrenen Benutzern durchgeführt werden kann. Zuerst müssen Sie ein Schlüsselpaar mit dem Dienstprogramm ssh-keygen generieren. Der öffentliche Schlüssel muss dann mit dem Befehl ssh-copy-id dem Server hinzugefügt werden. Danach können Sie sich mit einem privaten Schlüssel mit dem Server verbinden.
Die SSH-Autorisierung mit dem Schlüssel ermöglicht es, die Sicherheit der Verbindung zum Server zu erhöhen und die Möglichkeit eines unbefugten Zugangs zu vermeiden. Selbst wenn ein Angreifer das Kennwort eines Benutzers erkennt, kann er ohne einen privaten Schlüssel keine Verbindung zum Server herstellen. Daher ist die Verwendung der Schlüsselautorisierung der empfohlene Ansatz für alle ssh-Benutzer.
Warum verwenden Sie Schlüssel für die Autorisierung in ssh?
Die Verwendung von Schlüsseln zur Autorisierung in SSH ist viel sicherer und zuverlässiger. Die Schlüssel bestehen aus zwei Teilen - einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel wird auf alle Computer verteilt, mit denen Sie eine Verbindung herstellen möchten, während der private Schlüssel nur auf Ihrem Gerät gespeichert ist.
Vorteile der Verwendung von Schlüsseln zur Autorisierung in SSH:
| 1. | Hohes Maß an Sicherheit: Der private Schlüssel wird nicht über das Netzwerk übertragen, was es unmöglich macht, ihn abzufangen. Außerdem beträgt die Länge der Schlüssel normalerweise mehrere tausend Bits, was sie durch die Auswahlmethode praktisch unangreifbar macht. |
| 2. | Bequemlichkeit: Wenn Sie Schlüssel zur Autorisierung in SSH verwenden, müssen Sie sich bei jeder Verbindung kein Passwort merken oder eingeben. Sie geben einfach Ihren privaten Schlüssel bei der Verbindung an, was den Autorisierungsprozess vereinfacht. |
| 3. | Automatisierungsfähigkeit: Mithilfe von Schlüsseln können Sie die Verbindung zu Remoteservern automatisieren. Sie können beispielsweise Schlüssel verwenden, um sich automatisch in Skripts oder Scheduler-Tasks bei Servern anzumelden. |
| 4. | Zentralsteuerung: Die Verwendung von Schlüsseln erleichtert die zentrale Verwaltung des Zugriffs auf Remotetools. Sie können Schlüssel verwalten und Zugriffsrechte an einem Ort bearbeiten, was die Verwaltung von Servern erheblich vereinfacht. |
Daher ist die Verwendung von Schlüsseln zur Autorisierung in SSH eine sicherere, bequemere und flexiblere Authentifizierungsmethode. Es hilft, Ihre Daten zu schützen und unbefugten Zugriff auf Server zu verhindern.
Wie erstelle ich Schlüssel und konfiguriere sie für die Verwendung?
Zuerst müssen Sie ein Schlüsselpaar generieren, das aus öffentlichen und privaten Schlüsseln besteht. Der öffentliche Schlüssel wird auf dem Remote-Server gehostet und der private Schlüssel wird auf dem lokalen Computer gespeichert.
- Öffnen Sie ein Terminal auf Ihrem lokalen Computer.
- Geben Sie den Befehl ssh-keygen ein, um ein neues Schlüsselpaar zu erstellen.
- Standardmäßig werden die Schlüssel im Verzeichnis ~/ gespeichert.ssh/ . Sie können die Standardwerte beibehalten oder ein anderes Verzeichnis auswählen.
- Wenn Sie aufgefordert werden, ein Passwort einzugeben, können Sie es leer lassen oder ein Passwort festlegen, um die Sicherheit zu verbessern.
- Die generierten Schlüssel werden in zwei Dateien gespeichert: id_rsa (privater Schlüssel) und id_rsa.pub (öffentlicher Schlüssel).
Nachdem Sie ein Schlüsselpaar erstellt haben, müssen Sie den öffentlichen Schlüssel auf den Remoteserver kopieren:
- Öffnen Sie ein Terminal auf Ihrem lokalen Computer.
- Geben Sie den Befehl ssh-copy-id username@remote_host ein und ersetzen Sie username durch Ihren Benutzernamen auf dem Remoteserver und remote_host durch die IP-Adresse oder den Domänennamen des Remoteservers.
- Sie werden aufgefordert, das Passwort vom Remote-Server einzugeben. Geben Sie es ein und drücken Sie die Eingabetaste.
- Nachdem Sie den öffentlichen Schlüssel erfolgreich kopiert haben, können Sie sich mit dem privaten Schlüssel auf dem Remote-Server anmelden, ohne ein Passwort einzugeben.
Grundlegende Schritte zum Einrichten der Schlüsselautorisierung in SSH
| Schritt | Die Beschreibung |
| 1 | Erstellen Sie ein Schlüsselpaar auf Ihrem Computer mit dem Befehl ssh-keygen . Geben Sie den Pfad zum Speichern der Schlüssel an und legen Sie eine Passphrase für den privaten Schlüssel fest. |
| 2 | Kopieren Sie den öffentlichen Schlüssel, den Sie im vorherigen Schritt erstellt haben, auf den Server, auf den Sie zugreifen möchten. Normalerweise ist der öffentliche Schlüssel in der Datei ~/ enthalten.ssh/id_rsa.pub . |
| 3 | Erstellen Sie auf dem Server das Verzeichnis ~/.ssh mit 700 Zugriffsrechten . Wenn das Verzeichnis bereits vorhanden ist, stellen Sie sicher, dass die Zugriffsrechte korrekt festgelegt sind. |
| 4 | Erstellen oder öffnen Sie eine ~/ -Datei.ssh/authorized_keys auf dem Server und fügen Sie den Inhalt Ihres öffentlichen Schlüssels darin ein. Legen Sie die Zugriffsrechte für die Datei auf 600 fest . |
| 5 | Konfigurieren Sie die SSH-Serverkonfigurationsdatei /etc/ssh/sshd_config . Legen Sie PubkeyAuthentication auf yes fest, und starten Sie den SSH-Server neu, um die Änderungen anzuwenden. |
| 6 | Jetzt können Sie sich mit Ihrem privaten Schlüssel über SSH mit dem Server verbinden. Wenn Sie eine Verbindung herstellen, werden Sie aufgefordert, die Passphrase einzugeben, die Sie beim Erstellen des Schlüsselpaares angegeben haben. |
Nach diesen Schritten können Sie die Schlüsselautorisierung in SSH konfigurieren und eine höhere Sicherheit bei der Verbindung mit dem Server gewährleisten.
Schritt 1: Erstellen eines Schlüsselpaares
1. Öffne die Eingabeaufforderung oder das Terminal auf deinem Computer.
2. Geben Sie den folgenden Befehl ein:
ssh-keygen -t rsa
Dieser Befehl erstellt ein RSA-Schlüsselpaar. Standardmäßig werden die Schlüssel im Home-Verzeichnis des Benutzers gespeichert.
3. Wenn Sie aufgefordert werden, einen Dateinamen einzugeben, drücken Sie die Eingabetaste, um die Schlüssel an ihrem Standardspeicherort zu speichern.
4. Das System wird dann aufgefordert, eine Passphrase einzugeben, die den privaten Schlüssel schützt. Geben Sie eine Passphrase ein, merken Sie sich diese oder bewahren Sie sie an einem sicheren Ort auf.
5. Danach wird ein Schlüsselpaar generiert.
Der öffentliche Schlüssel wird in der Datei gespeichert ~/.ssh/id_rsa.pub.
Der private Schlüssel wird in der Datei gespeichert ~/.ssh/id_rsa.
Das ist alles! Jetzt hast du ein Schlüsselpaar, das wir später für die Autorisierung mit dem SSH-Schlüssel verwenden werden.
Schritt 2: Konfigurieren des Servers für die Verwendung des Schlüssels
Bevor Sie sich mit einem Schlüssel beim Server anmelden können, müssen Sie den Server so konfigurieren, dass er diesen Schlüssel akzeptiert.
Hier ist, was Sie tun müssen:
-
Öffnen Sie ein Terminal auf dem Server und führen Sie den folgenden Befehl aus:
sudo nano /etc/ssh/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
sudo systemctl restart ssh
Ihr Server ist jetzt so konfiguriert, dass er bei der SSH-Autorisierung einen Schlüssel verwendet.