So erstellen und installieren Sie SSH-Schlüssel aus der Linux-Shell

Sicherheit im Cyberspace ist unerlässlich, und die Verwendung von SSH-Schlüsseln für Remote-Logins bietet eine deutlich sicherere Alternative zu herkömmlichen Passwörtern. Im Folgenden erklären wir, wie Sie SSH-Schlüssel unter Linux generieren, installieren und effektiv nutzen können.

Warum Passwörter problematisch sind

Secure Shell (SSH) ist ein verschlüsseltes Protokoll, das die sichere Anmeldung bei Benutzerkonten auf entfernten Linux- oder Unix-ähnlichen Systemen ermöglicht. Die gängige Methode zur Absicherung dieser Konten ist die Verwendung von Passwörtern. Bei der Anmeldung auf einem Remote-Computer müssen Benutzer sowohl ihren Benutzernamen als auch das dazugehörige Passwort eingeben.

Obwohl Passwörter eine weit verbreitete Methode zur Sicherung von Computerressourcen sind, weisen sie erhebliche Schwachstellen auf. Benutzer neigen dazu, schwache Passwörter zu wählen, diese mit anderen zu teilen oder auf mehreren Systemen identische Passwörter zu verwenden. Dies birgt ein erhebliches Sicherheitsrisiko.

SSH-Schlüssel bieten hier eine deutlich sicherere Alternative. Einmal eingerichtet, sind sie genauso benutzerfreundlich wie Passwörter.

Die Sicherheit von SSH-Schlüsseln erklärt

SSH-Schlüssel werden als Paar erzeugt und verwendet. Diese beiden Schlüssel sind miteinander verbunden und kryptografisch gesichert. Es gibt einen öffentlichen und einen privaten Schlüssel, die beide an Ihr Benutzerkonto gebunden sind. Jeder Benutzer, der SSH-Schlüssel auf einem Computer nutzt, verfügt über sein eigenes Schlüsselpaar.

Ihr privater Schlüssel wird üblicherweise in Ihrem Benutzerverzeichnis gespeichert, während der öffentliche Schlüssel auf den Remote-Computern installiert wird, auf die Sie zugreifen möchten.

Es ist von höchster Bedeutung, Ihren privaten Schlüssel sicher aufzubewahren. Sollte er in fremde Hände gelangen, würde dies Ihre Sicherheit ebenso gefährden, als wäre Ihr Passwort offengelegt worden. Eine wichtige und nachdrücklich empfohlene Sicherheitsmaßnahme ist die Verschlüsselung Ihres privaten Schlüssels mit einer starken Passphrase.

Der öffentliche Schlüssel kann hingegen bedenkenlos weitergegeben werden, ohne die Sicherheit zu gefährden. Es ist unmöglich, den privaten Schlüssel durch eine Analyse des öffentlichen Schlüssels zu ermitteln. Der private Schlüssel kann Nachrichten verschlüsseln, die nur mit dem passenden privaten Schlüssel wieder entschlüsselt werden können.

Bei einer Verbindungsanfrage nutzt der Remote-Computer eine Kopie Ihres öffentlichen Schlüssels, um eine verschlüsselte Nachricht zu generieren. Diese Nachricht enthält eine Sitzungs-ID und andere Metadaten. Nur der Computer, der im Besitz des privaten Schlüssels ist, also Ihr Computer, kann diese Nachricht entschlüsseln.

Ihr Computer greift auf Ihren privaten Schlüssel zu, um die Nachricht zu entschlüsseln und sendet eine eigene, verschlüsselte Antwort an den Remote-Computer. Diese verschlüsselte Nachricht enthält unter anderem die Sitzungs-ID, die der entfernte Computer zuvor gesendet hat.

Der Remote-Computer weiß nun sicher, dass Sie die Person sind, für die Sie sich ausgeben, da nur Ihr privater Schlüssel die Sitzungs-ID aus der Nachricht extrahieren konnte.

Voraussetzungen: Zugriff auf den Remote-Computer

Stellen Sie vorab sicher, dass Sie eine Remote-Verbindung zu dem gewünschten Computer aufbauen und sich anmelden können. Dies dient als Beweis dafür, dass für Ihren Benutzernamen und Ihr Passwort ein gültiges Konto auf dem Remote-System existiert und Ihre Anmeldedaten korrekt sind.

Es ist ratsam, erst mit SSH-Schlüsseln zu arbeiten, nachdem Sie bestätigt haben, dass die SSH-Verbindung mit Passwörtern zum Zielcomputer funktioniert.

In diesem Beispiel ist ein Benutzer namens „dave“ auf dem Computer „wdzwdz“ angemeldet und möchte eine Verbindung zum Computer „Sulaco“ herstellen.

Der folgende Befehl wird eingegeben:

ssh [email protected]

Nach Eingabe des Passwortes wird die Verbindung zu Sulaco hergestellt und die Eingabeaufforderung ändert sich zur Bestätigung.

Nach der Bestätigung kann sich Benutzer „dave“ mit dem Befehl „exit“ von Sulaco trennen:

exit

Nach der Trennung wird die ursprüngliche Eingabeaufforderung wieder angezeigt: [email protected]

Erstellen eines SSH-Schlüsselpaares

Diese Anweisungen wurden mit den Linux-Distributionen Ubuntu, Fedora und Manjaro erfolgreich getestet. Die Vorgehensweise war in allen Fällen identisch, und es war keine zusätzliche Softwareinstallation erforderlich.

Geben Sie den folgenden Befehl ein, um Ihre SSH-Schlüssel zu generieren:

ssh-keygen

Der Generierungsprozess startet. Sie werden gefragt, wo die SSH-Schlüssel gespeichert werden sollen. Bestätigen Sie den Standardpfad mit der Eingabetaste. Die Verzeichnisberechtigungen sind so konfiguriert, dass sie nur Ihnen zugänglich sind.

Sie werden nun aufgefordert, eine Passphrase einzugeben. Es wird dringend empfohlen, hier eine Passphrase zu verwenden. Merken Sie sich diese Passphrase gut! Sie können die Eingabetaste drücken, um keine Passphrase zu verwenden, was jedoch nicht ratsam ist. Eine Passphrase aus drei oder vier zufällig gewählten Wörtern bietet eine sehr hohe Sicherheit.

Sie werden aufgefordert, die Passphrase erneut einzugeben, um Tippfehler auszuschließen.

Die SSH-Schlüssel werden nun generiert und gespeichert.

Den angezeigten „randomart“ können Sie ignorieren. Einige Remote-Computer können bei jeder Verbindung ihre zufällige Grafik anzeigen. Der Zweck ist, dass Sie erkennen, wenn sich die Grafik ändert. In diesem Fall sollten Sie der Verbindung misstrauen, da dies bedeuten kann, dass die SSH-Schlüssel des Servers geändert wurden.

Installation des öffentlichen Schlüssels

Damit der Remote-Computer (Sulaco) weiß, dass der öffentliche Schlüssel Ihnen gehört, muss dieser dort installiert werden.

Dies geschieht mit dem Befehl „ssh-copy-id“. Dieser Befehl verbindet sich mit dem Remote-Computer, überträgt jedoch den öffentlichen SSH-Schlüssel anstatt Ihnen die Anmeldung zu ermöglichen.

ssh-copy-id [email protected]

Auch wenn Sie sich nicht beim Remote-Computer anmelden, müssen Sie sich mit einem Passwort authentifizieren. Der Remote-Computer muss erkennen, zu welchem Benutzerkonto der neue SSH-Schlüssel gehört.

Bitte beachten Sie: Das Passwort, das Sie hier angeben müssen, ist das Passwort für das Benutzerkonto, bei dem Sie sich anmelden möchten. Dies ist nicht die Passphrase, die Sie gerade generiert haben.

Nach erfolgreicher Verifizierung des Passwortes, überträgt „ssh-copy-id“ Ihren öffentlichen Schlüssel auf den Remote-Computer.

Sie kehren zur Eingabeaufforderung Ihres Computers zurück. Die Verbindung zum Remote-Computer wird nicht aufrechterhalten.

Verbinden mit SSH-Schlüsseln

Testen Sie nun die Verbindung mit dem Remote-Computer mithilfe der SSH-Schlüssel.

ssh [email protected]

Da der Verbindungsprozess den Zugriff auf Ihren privaten Schlüssel erfordert und dieser mit einer Passphrase geschützt ist, müssen Sie diese Passphrase eingeben, damit die Verbindung fortgesetzt werden kann.

Geben Sie Ihre Passphrase ein und bestätigen Sie mit der Entsperr-Schaltfläche.

Sobald Sie Ihre Passphrase einmal innerhalb einer Terminal-Sitzung eingegeben haben, ist keine erneute Eingabe erforderlich, solange das Terminalfenster geöffnet ist. Sie können beliebig viele Remote-Sitzungen verbinden und trennen, ohne die Passphrase wiederholen zu müssen.

Die Option „Diesen Schlüssel automatisch entsperren, wenn ich eingeloggt bin“ kann durch das Setzen des entsprechenden Häkchens aktiviert werden. Hierdurch wird jedoch Ihre Sicherheit reduziert. Wenn Sie Ihren Computer unbeaufsichtigt lassen, könnte jede Person eine Verbindung zu den Remote-Computern herstellen, die über Ihren öffentlichen Schlüssel verfügen.

Nach der Eingabe Ihrer Passphrase sind Sie nun erfolgreich mit dem Remote-Computer verbunden.

Um den gesamten Vorgang noch einmal zu testen, trennen Sie die Verbindung mit dem Befehl „exit“ und stellen Sie die Verbindung zum Remote-Computer über dasselbe Terminalfenster wieder her.

ssh [email protected]

Sie werden nun ohne erneute Eingabe eines Passwortes oder einer Passphrase mit dem Remote-Computer verbunden.

Sicherheit ohne Passwörter

Experten im Bereich Cybersicherheit sprechen von „Sicherheitsreibung“. Dies beschreibt die kleinen Unannehmlichkeiten, die man in Kauf nehmen muss, um ein höheres Maß an Sicherheit zu erlangen. Normalerweise sind ein oder zwei zusätzliche Schritte nötig, um eine sicherere Arbeitsweise zu erreichen, was viele Benutzer ablehnen. Sie bevorzugen in vielen Fällen ein geringeres Maß an Sicherheit, um jegliche Reibung zu vermeiden. Dies ist eine ganz natürliche menschliche Verhaltensweise.

Mit SSH-Schlüsseln profitieren Sie jedoch sowohl von erhöhter Sicherheit als auch von gesteigertem Komfort – eine klare Win-Win-Situation.