Auf facebook teilen
Auf linkedin teilen
Auf twitter teilen
Auf pinterest teilen
Auf google teilen

Inhalt

Mithilfe von SSH-Schlüsseln können Sie Ihrer Website eine Sicherheitsebene hinzufügen. Normalerweise besteht eine SSH-Verbindung (Secure Shell) zwischen einem Client und einem Server. Diese Verbindung wird durch ein Passwort authentifiziert. Es ist nicht zu sagen, dass Passwörter heutzutage nicht mehr sicher sind. Es ist einfach, Bruteforce auf einen SSH-Server zu übertragen, indem verschiedene Kombinationen von Kennwörtern ausprobiert werden. Wie lange würde ein Hacker wohl brauchen, um ein 8-stelliges Passwort zu versuchen? In einem Supercomputer wäre es eine Frage von Minuten, in einem normalen Computer mit GPU eine Frage von Tagen. Dies bedeutet, dass Passwörter eine Sicherheitslücke darstellen. Aber keine Sorge, es gibt eine Möglichkeit, die Verwendung von Passwörtern zu vermeiden. SSH-Schlüssel

Was ist ein SSH-Schlüssel?

Ein SSH-Schlüssel ist ein verschlüsselter Schlüssel, der aus einem PUBLIC KEY und einem PRIVATE KEY besteht. Diese Methode funktioniert über die RSA-Verschlüsselung, bei der der öffentliche Schlüssel allen öffentlichen zum Verschlüsseln von Daten zur Verfügung steht, aber nur der private Schlüssel diese Daten entschlüsseln kann. Zumindest für jetzt. Sie könnten einen privaten Schlüssel technisch entschlüsseln, aber es würde ein paar Jahre dauern, ein bisschen sicherer als ein Passwort. Normalerweise sehen wir diese Art der Verschlüsselung zwischen unserem Browser und dem Web. Sie haben Zugriff auf den öffentlichen Schlüssel des Servers, der wiederum Ihre Daten verschlüsselt. Aber Sie können es nicht entschlüsseln. Dies wird als Einwegverschlüsselung bezeichnet.

Erstellen eines SSH-Schlüssels

Zuerst müssen Sie wissen, ob aktuell Schlüssel generiert wurden. Führen Sie dazu einfach den folgenden Befehl aus:

ls -l ~ / .ssh / id _ *. pub

Hier erfahren Sie, ob derzeit generierte Schlüssel vorhanden sind. Wenn das Ergebnis wie folgt lautet: Keine Daten / Dateien gefunden, können Sie den bereits generierten Schlüssel verwenden oder Ihren eigenen erstellen.

Lassen Sie uns nun den Schlüssel mit folgendem Code generieren:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Stellen Sie sicher, dass Sie Ihre E-Mail-Adresse ersetzen. Drücken Sie nun die Eingabetaste. Sie werden aufgefordert, eine Passphrase zu erstellen. Dies fügt eine zusätzliche Sicherheitsebene hinzu, obwohl dies optional ist. Sie sehen die folgende Ausgabe:

Passphrase eingeben (leer für keine Passphrase):

Ihre Ausgabe wird dieser ähnlich sein

Befehlszeilenausgabe

Jetzt kannst du rennen

ls ~ / .ssh / id_ *

Die Ausgabe wird sein

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Hinweis: Bisher wurde dies alles auf Ihrem Computer generiert, nicht auf dem Server. Dies ist wichtig, da der folgende Befehl Ihren Benutzer mit dem SSH-Schlüssel verknüpft.

Schlüssel mit Benutzer verknüpfen

ssh-copy-id remote_username @ server_ip_address

Sie werden mit der folgenden Ausgabe aufgefordert

Passwort von remote_username @ server_ip_address:

Nach der Authentifizierung wird der Inhalt von ~ / .ssh / id_rsa.pub wird kopiert nach ~ / .ssh / autorisierte_Tasten. Sie können auch einfach die folgenden Befehle ausführen, wenn Sie die zuvor genannten Befehle nicht ausführen können.

Führen Sie auf dem Server den folgenden Befehl aus:

cat ~ / .ssh / id_rsa.pub | ssh remote_username @ server_ip_address "mkdir -p ~ / .ssh && chmod 700 ~ / .ssh && cat >> ~ / .ssh / autorisierte_schlüssel && chmod 600 ~ / .ssh / autorisierte_schlüssel"

Deaktivieren der SSH-Anmeldung mit Kennwort

ssh sudo_user @ server_ip_address sudo nano / etc / ssh / sshd_config

Suchen Sie die folgenden Zeilen und ändern Sie sie wie folgt:

PasswordAuthentication no ChallengeResponseAuthentication no UsePAM-Nr

Endlich laufen

sudo systemctl ssh neu starten

Du bist jetzt gut zu gehen.