Authentifizierung über SSH mit Schlüsseln anstelle von Passwörtern

Authentifizierung über SSH mit Schlüsseln anstelle von Passwörtern / Linux

SSH ist eine großartige Möglichkeit, um Remote-Zugriff auf Ihren Computer zu erhalten. Ähnlich wie FTP können Sie über SSH eine Verbindung herstellen. Was ist SSH und wie unterscheidet es sich von FTP? Was ist SSH und wie unterscheidet es sich von FTP? Lesen Sie mehr, um sicheren Zugriff auf einen Dateiserver mit Ihrem bevorzugten FTP zu erhalten FTP-Dateiübertragungen von Client-Master-Dateien auf allen Ihren Sites mit FileZilla Master-FTP-Dateiübertragungen auf allen Ihren Sites mit FileZilla Eine große Anzahl von FTP-Clients von früher hatte Schwierigkeiten, wenn es um große Dateiübertragungen ging. Die Apps erlebten die üblichen Zeitüberschreitungen, die Sie erwarten würden, wenn der Computer 15… Read More sitzt, schnell auf Remote-Dateien zugreift oder sogar eine Netzwerkfestplatte an Ihren Computer hängt. SSH bietet jedoch mehr als nur Remote-Dateizugriff. Wenn Sie sich über SSH in Terminal anmelden (oder PuTTY unter Windows verwenden), erhalten Sie Remote-Shell-Zugriff (SSH ist die Abkürzung für Secure SHell). So verwalte ich meinen Medienserver aus der Ferne.

Beim Öffnen der Ports Was ist Portweiterleitung und wie kann sie mir helfen? [MakeUseOf erklärt] Was ist Portweiterleitung und wie kann sie mir helfen? [MakeUseOf Explains] Weinen Sie ein wenig, wenn Ihnen jemand sagt, dass es ein Problem mit der Portweiterleitung gibt, und deshalb funktioniert Ihre glänzende neue App nicht? Ihre Xbox lässt Sie keine Spiele spielen, Ihre Torrent-Downloads verweigern… auf Ihrem Router (Port 22, um genau zu sein), können Sie nicht nur von Ihrem lokalen Netzwerk aus auf Ihren SSH-Server zugreifen, sondern von überall auf der Welt.

Sie möchten jedoch nicht riskieren, ein schwaches Kennwort für die Authentifizierung zu verwenden. Wenn jemand über SSH Zugriff auf Ihren Computer erhält, erhalten Sie vollständigen Shell-Zugriff. Nur um klar zu sein, das wollen wir nicht. Glücklicherweise ist es sehr einfach, Ihren globalen SSH-Server auf sehr sichere Weise einzurichten, indem Sie die schlüsselbasierte Authentifizierung verwenden und die Kennwortauthentifizierung auf Ihrem Server vollständig deaktivieren.

Ist das für mich?

Es ist verlockend, mit persönlicher Sicherheit locker zu werden. Wenn Sie den Server für private Zwecke verwenden, denken Sie vielleicht, dass die Leute Ihren Server einfach nicht kennen und daher nicht versuchen, ihn zu hacken - Sicherheit durch Unverständlichkeit. Das wäre eine sehr falsche Annahme. Da (der größte Teil) SSH-Verkehr auf Port 22 übertragen wird, überprüfen Angreifer regelmäßig die Sichtbarkeit von Port 22 für zufällige IP-Adressen, gefolgt von einem Brute-Force-Angriff. Dies ist eine der Möglichkeiten, wie Botnets für DDOS-Angriffe eingesetzt werden können. Was ist ein DDoS-Angriff? [MakeUseOf erklärt] Was ist ein DDoS-Angriff? [MakeUseOf Explains] Der Begriff DDoS pfeift immer dann vorbei, wenn der Cyberaktivismus seinen Kopf massiv aufbaut. Diese Art von Angriffen führt aus verschiedenen Gründen zu internationalen Schlagzeilen. Die Probleme, die diese DDoS-Angriffe begünstigen, sind oft kontrovers oder… Read More .

Um es kurz zu machen: Wenn Sie Ihren SSH-Server über das Internet übertragen (d. H. Weiterleitungsport 22), dann ist dies das Richtige für Sie.

Die Idee schlüsselbasierter SSH-Anmeldungen

Schlüsselbasierte SSH-Anmeldungen basieren auf der Idee der Verschlüsselung mit öffentlichen Schlüsseln. Es würde uns zu weit führen, um die Feinheiten zu erklären, aber wir werden versuchen, ein einfaches Bild von dem zu zeichnen, was sich hinter den Kulissen abspielt.

Im folgenden Prozess generiert Ihr Client-Computer zwei Schlüssel: einen öffentlichen und einen privaten Schlüssel. Die allgemeine Idee ist, dass Sie Daten mit dem öffentlichen Schlüssel verschlüsseln können, diese jedoch nur mit dem privaten Schlüssel entschlüsseln können. Wir legen den öffentlichen Schlüssel auf den Server und fordern ihn auf, die gesamte ausgehende Kommunikation damit zu verschlüsseln. Dadurch wird sichergestellt, dass nur die Clients mit dem privaten Schlüssel die Daten entschlüsseln und lesen können.

1. Installieren Sie OpenSSH

Zunächst richten wir einen SSH-Server mit OpenSSH ein. Wenn Sie bereits über einen SSH-Server verfügen und wissen möchten, wie Sie die schlüsselbasierte Authentifizierung einrichten, können Sie diesen Schritt überspringen. Verwenden Sie Ihren bevorzugten Paketmanager, um die OpenSSH-Serveranwendung zu installieren. Der einfachste Weg könnte immer noch sein, das auszuführen apt-get Befehl vom Terminal.

sudo apt-get installiert openssh-server

Geben Sie Ihr Passwort ein, bestätigen Sie und warten Sie eine Minute, um die Installation abzuschließen. Glückwunsch, Sie haben jetzt einen SSH-Server. (Das war einfach!)

Sie können die Anwendung entweder unverändert verwenden oder bearbeiten / etc / ssh / sshd_config um es zu konfigurieren. Führen Sie das aus man sshd_config Befehl in Terminal, um weitere Informationen zu erhalten. Eine weitere großartige Quelle, um mehr über OpenSSH zu erfahren, ist die entsprechende Ubuntu-Hilfeseite.

2. Generieren Sie Schlüssel

Wir erzeugen eine Reihe von Schlüsseln. Führen Sie die folgenden Befehle aus (angepasst von der Ubuntu-Hilfeseite von OpenSSH / Keys)..

mkdir ~ / .ssh
chmod 700 ~ / .ssh
ssh-keygen -t rsa

Der erste Befehl erstellt ein verstecktes Verzeichnis '.ssh' in Ihrem Basisordner, der zweite Befehl ändert die Zugriffsberechtigungen des Ordners, während der dritte Befehl tatsächlich einen Satz von RSA-Schlüsseln generiert. Sie werden zuerst nach einem Speicherort gefragt, an dem die Schlüssel gespeichert werden sollen (lassen Sie das Feld leer und drücken Sie die Eingabetaste, um den Standardspeicherort zu speichern). Anschließend wird eine Passphrase angezeigt.

Diese Passphrase verschlüsselt den auf Ihrem Computer gespeicherten privaten Schlüssel weiter. Dadurch haben Sie mehr Zeit, um den SSH-Server zu sichern, wenn Ihr privater Schlüssel gestohlen wird. Stellen Sie sicher, dass Sie eine Passphrase wählen, die Sie sich merken können, da Sie diese eingeben müssen, wenn Sie versuchen, Ihren Schlüssel zu verwenden.

3. Übertragen Sie den öffentlichen Schlüssel

Als Nächstes müssen Sie den öffentlichen Schlüssel, den Sie im vorherigen Schritt generiert haben, auf den SSH-Server-Computer übertragen. Wenn auf Ihrem Client-Computer auch Linux ausgeführt wird, kann dies sehr einfach durch Ausführen des folgenden Befehls erreicht werden und für den Benutzernamen und die IP-Adresse Ihres SSH-Servers).

ssh-copy-id @

Wenn Ihr Client den Befehl ssh-copy-id nicht unterstützt, können Sie stattdessen den folgenden Befehl verwenden. Es ist etwas komplizierter, erzielt aber im Wesentlichen die gleichen Ergebnisse.

cat ~ / .ssh / id_rsa.pub | ssh @ "mkdir ~ / .ssh; cat >> ~ / .ssh / authorised_keys"

Sie werden aufgefordert, das Benutzerpasswort für den SSH-Server einzugeben. Wenn die Befehle ohne Fehler ausgeführt werden, wurde Ihr öffentlicher Schlüssel auf den Server kopiert.

4. Deaktivieren Sie die Passwortauthentifizierung

Beachten Sie, dass Ihr System immer noch nicht sicherer ist als nach Schritt 1. Obwohl mindestens ein Client für die Verwendung der schlüsselbasierten Authentifizierung konfiguriert ist, können andere Clients immer noch mit einem Kennwort verbunden werden. Zum Abschluss deaktivieren wir die Passwortauthentifizierung vollständig. Nach diesem Schritt, nur Computer, die den oben genannten Prozess durchlaufen haben, können sich mit Ihrem SSH-Server verbinden.

Um die Kennwortauthentifizierung zu deaktivieren, bearbeiten Sie die / etc / ssh / sshd_config Datei in Ihrem bevorzugten Editor. Eine der einfachsten Methoden zum Bearbeiten einer eingeschränkten Datei ist wiederum die Verwendung von Terminal. (Ich bin ein Teil von Nano, aber Sie können alles verwenden, was Sie am wohlsten fühlen.)

sudo nano / etc / ssh / sshd_config

Etwa 40 Zeilen am Ende der Datei finden Sie

#PasswordAuthentication Ja

Entfernen Sie das Nummernzeichen (#) und ändern Sie die Einstellung in "Nein" (siehe unten).

PasswortAuthentifizierungsnr

Die endgültige Datei sollte ungefähr so ​​aussehen:

Speichern Sie die Datei, indem Sie STRG + X drücken. Bestätigen Sie die Bearbeitung und den Dateinamen und Sie sind fast fertig. Starten Sie einfach den SSH-Server neu, um ihn mit diesen neuen Einstellungen auszuführen.

Sudo Restart ssh

Sie werden auch feststellen, dass Ihr Client nicht mehr nach der Passphrase zur Entschlüsselung Ihres Schlüssels fragt, wenn die Kennwortauthentifizierung auf dem Server deaktiviert ist. Nun, da Sie einen sicheren SSH-Server haben, wie wollen Sie ihn verwenden? Als sicherer Dateiserver, Remote-Shell oder zur Weiterleitung anderer Dienste über SSH? Lass es uns in den Kommentaren unten wissen!

Bildnachweis: Shutterstock

Erfahren Sie mehr über: Online-Sicherheit, Remote-Zugriff.