Nehmen Sie die Cybersicherheit ernst und verwenden Sie SSH-Schlüssel, um auf Remote-Anmeldungen zuzugreifen. Sie sind sicherer als Passwörter. Wir zeigen Ihnen, wie Sie SSH-Schlüssel unter Linux generieren, installieren und verwenden.
Was stimmt nicht mit Passwörtern?
Secure Shell (SSH) ist das verschlüsselte Protokoll, mit dem Sie sich bei Benutzerkonten unter Linux oder Unix-ähnlich Computers. In der Regel werden solche Benutzerkonten mit Kennwörtern gesichert. Wenn Sie sich bei einem Remotecomputer anmelden, müssen Sie den Benutzernamen und das Kennwort für das Konto angeben, bei dem Sie sich anmelden.
Passwörter sind das häufigste Mittel, um den Zugriff auf Computerressourcen zu sichern. Trotzdem hat die passwortbasierte Sicherheit ihre Mängel. Menschen wählen schwache Passwörter, teilen Passwörter, verwenden dasselbe Passwort auf mehreren Systemen und so weiter.
SSH-Schlüssel sind viel sicherer und nach ihrer Einrichtung genauso einfach zu verwenden wie Kennwörter.
Was macht SSH-Schlüssel sicher?
SSH-Schlüssel werden paarweise erstellt und verwendet. Die beiden Schlüssel sind verknüpft und kryptografisch sicher. Einer ist Ihr öffentlicher Schlüssel und der andere ist Ihr privater Schlüssel. Sie sind an Ihr Benutzerkonto gebunden. Wenn mehrere Benutzer auf einem Computer SSH-Schlüssel verwenden, erhalten sie jeweils ein eigenes Schlüsselpaar.
Ihr privater Schlüssel wird (normalerweise) in Ihrem Basisordner installiert, und der öffentliche Schlüssel wird auf dem Remotecomputer (oder den Computern) installiert, auf die Sie zugreifen müssen.
Ihr privater Schlüssel muss sicher aufbewahrt werden. Wenn es für andere zugänglich ist, befinden Sie sich an derselben Position, als hätten sie Ihr Passwort entdeckt. Eine sinnvolle und dringend empfohlene Vorsichtsmaßnahme besteht darin, dass Ihr privater Schlüssel auf Ihrem Computer mit einem robusten Schlüssel verschlüsselt wird Passphrase .
Der öffentliche Schlüssel kann frei freigegeben werden, ohne Ihre Sicherheit zu gefährden. Es ist nicht möglich, anhand einer Prüfung des öffentlichen Schlüssels festzustellen, um welchen privaten Schlüssel es sich handelt. Der private Schlüssel kann Nachrichten verschlüsseln, die nur der private Schlüssel entschlüsseln kann.
Wenn Sie eine Verbindungsanforderung stellen, verwendet der Remotecomputer die Kopie Ihres öffentlichen Schlüssels, um eine verschlüsselte Nachricht zu erstellen. Die Nachricht enthält eine Sitzungs-ID und andere Metadaten. Nur der Computer, der den privaten Schlüssel besitzt - Ihr Computer - kann diese Nachricht entschlüsseln.
Ihr Computer greift auf Ihren privaten Schlüssel zu und entschlüsselt die Nachricht. Anschließend sendet es seine eigene verschlüsselte Nachricht an den Remotecomputer zurück. Diese verschlüsselte Nachricht enthält unter anderem die Sitzungs-ID, die vom Remotecomputer empfangen wurde.
Der Remotecomputer weiß jetzt, dass Sie der sein müssen, von dem Sie sagen, dass Sie es sind, da nur Ihr privater Schlüssel die Sitzungs-ID aus der an Ihren Computer gesendeten Nachricht extrahieren kann.
Stellen Sie sicher, dass Sie auf den Remotecomputer zugreifen können
Stellen Sie sicher, dass Sie können Stellen Sie eine Remoteverbindung zum Remotecomputer her und melden Sie sich an . Dies zeigt, dass Ihr Benutzername und Ihr Kennwort ein gültiges Konto auf dem Remotecomputer eingerichtet haben und dass Ihre Anmeldeinformationen korrekt sind.
Versuchen Sie nichts mit SSH-Schlüsseln zu tun, bis Sie überprüft haben, dass Sie SSH mit Kennwörtern verwenden können, um eine Verbindung zum Zielcomputer herzustellen.
In diesem Beispiel wird eine Person mit einem Benutzerkonto angerufen
Dave
ist an einem Computer namens angemeldet
Howtogeek
. Sie werden eine Verbindung zu einem anderen Computer namens herstellen
Sulaco
.
Sie geben den folgenden Befehl ein:
ssh dave @ sulaco
Sie werden nach ihrem Passwort gefragt, geben es ein und sind mit Sulaco verbunden. Die Eingabeaufforderung ändert sich, um dies zu bestätigen.
Das ist die Bestätigung, die wir brauchen. Also Benutzer
Dave
kann trennen von
Sulaco
mit dem
Ausfahrt
Befehl:
Ausfahrt
Sie erhalten die Nachricht zum Trennen der Verbindung und ihre Eingabeaufforderung kehrt zu zurück
dave @ howtogeek
.
VERBUNDEN: So stellen Sie unter Windows, MacOS oder Linux eine Verbindung zu einem SSH-Server her
Erstellen eines Paares von SSH-Schlüsseln
Diese Anweisungen wurden auf Ubuntu-, Fedora- und Manjaro-Distributionen von Linux getestet. In allen Fällen war der Prozess identisch und es war nicht erforderlich, neue Software auf einer der Testmaschinen zu installieren.
Geben Sie den folgenden Befehl ein, um Ihre SSH-Schlüssel zu generieren:
ssh-keygen
Der Generierungsprozess beginnt. Sie werden gefragt, wo Ihre SSH-Schlüssel gespeichert werden sollen. Drücken Sie die Eingabetaste, um den Standardspeicherort zu übernehmen. Die Berechtigungen für den Ordner sichern ihn nur für Ihre Verwendung.
Sie werden nun nach einer Passphrase gefragt. Wir empfehlen Ihnen dringend, hier eine Passphrase einzugeben. Und denk dran, was es ist! Sie können die Eingabetaste drücken, um keine Passphrase zu erhalten. Dies ist jedoch keine gute Idee. Eine Passphrase, die aus drei oder vier nicht verbundenen Wörtern besteht, die aneinandergereiht sind, ergibt eine sehr robuste Passphrase.
Sie werden aufgefordert, dieselbe Passphrase erneut einzugeben, um zu überprüfen, ob Sie das eingegeben haben, was Sie für eingegeben gehalten haben.
Die SSH-Schlüssel werden für Sie generiert und gespeichert.
Sie können das angezeigte „Randomart“ ignorieren. Einige Remotecomputer zeigen Ihnen bei jeder Verbindung möglicherweise ihre zufällige Grafik. Die Idee ist, dass Sie erkennen, ob sich die zufällige Grafik ändert, und der Verbindung misstrauisch gegenüberstehen, da dies bedeutet, dass die SSH-Schlüssel für diesen Server geändert wurden.
Installieren des öffentlichen Schlüssels
Wir müssen Ihren öffentlichen Schlüssel installieren
Sulaco
, der Remote-Computer, damit er weiß, dass der öffentliche Schlüssel Ihnen gehört.
Wir machen das mit dem
ssh-copy-id
Befehl. Dieser Befehl stellt wie der normale eine Verbindung zum Remotecomputer her
ssh
Befehl, aber anstatt Ihnen die Anmeldung zu ermöglichen, wird der öffentliche SSH-Schlüssel übertragen.
ssh-copy-id dave @ sulaco
Obwohl Sie sich nicht am Remotecomputer anmelden, müssen Sie sich dennoch mit einem Kennwort authentifizieren. Der Remotecomputer muss identifizieren, zu welchem Benutzerkonto der neue SSH-Schlüssel gehört.
Beachten Sie, dass das Kennwort, das Sie hier angeben müssen, das Kennwort für das Benutzerkonto ist, bei dem Sie sich anmelden. Das ist nicht die Passphrase, die Sie gerade erstellt haben.
Wenn das Passwort überprüft wurde,
ssh-copy-id
überträgt Ihren öffentlichen Schlüssel auf den Remotecomputer.
Sie kehren zur Eingabeaufforderung Ihres Computers zurück. Sie sind nicht mit dem Remotecomputer verbunden.
Verbindung über SSH-Schlüssel herstellen
Folgen wir dem Vorschlag und versuchen, eine Verbindung zum Remotecomputer herzustellen.
ssh dave @ sulaco
Da für den Verbindungsprozess Zugriff auf Ihren privaten Schlüssel erforderlich ist und Sie Ihre SSH-Schlüssel hinter einer Passphrase geschützt haben, müssen Sie Ihre Passphrase angeben, damit die Verbindung fortgesetzt werden kann.
Geben Sie Ihre Passphrase ein und klicken Sie auf die Schaltfläche Entsperren.
Sobald Sie Ihre Passphrase in einer Terminalsitzung eingegeben haben, müssen Sie sie nicht erneut eingeben, solange das Terminalfenster geöffnet ist. Sie können beliebig viele Remote-Sitzungen verbinden und von diesen trennen, ohne Ihre Passphrase erneut eingeben zu müssen.
Sie können das Kontrollkästchen für die Option "Diesen Schlüssel automatisch entsperren, wenn ich angemeldet bin" aktivieren, dies verringert jedoch Ihre Sicherheit. Wenn Sie Ihren Computer unbeaufsichtigt lassen, kann jeder Verbindungen zu den Remotecomputern herstellen, die über Ihren öffentlichen Schlüssel verfügen.
Sobald Sie Ihre Passphrase eingegeben haben, sind Sie mit dem Remotecomputer verbunden.
Um den Vorgang noch einmal von Ende zu Ende zu überprüfen, trennen Sie die Verbindung mit
Ausfahrt
Befehl und stellen Sie über dasselbe Terminalfenster die Verbindung zum Remotecomputer wieder her.
ssh dave @ sulaco
Sie werden ohne Kennwort oder Passphrase mit dem Remotecomputer verbunden.
Keine Passwörter, aber erhöhte Sicherheit
Cybersicherheitsexperten sprechen von einer Sache, die als Sicherheitsreibung bezeichnet wird. Das ist der kleine Schmerz, den Sie ertragen müssen, um zusätzliche Sicherheit zu erhalten. Normalerweise sind ein oder zwei zusätzliche Schritte erforderlich, um eine sicherere Arbeitsweise anzuwenden. Und die meisten Leute mögen es nicht. Sie bevorzugen tatsächlich eine geringere Sicherheit und mangelnde Reibung. Das ist die menschliche Natur.
Mit SSH-Schlüsseln erhalten Sie mehr Sicherheit und mehr Komfort. Das ist definitiv eine Win-Win-Situation.