Salta al contenuto principale
Lympha technologies

Guide pratiche

Sicherer Zugriff auf einen VPS per SSH von Linux oder macOS aus

Sicherer SSH-Zugriff auf einen VPS von Linux oder macOS: wie die Schlüssel-Authentifizierung funktioniert (öffentlicher und privater Schlüssel), die Erzeugung mit ssh-keygen, die Kopie auf den Server mit ssh-copy-id und die optionale Passphrase — mi…

Im Rahmen der Absicherung Ihres VPS (siehe den Artikel „So sichern Sie einen VPS mit dem Betriebssystem Ubuntu Linux ab“) kann der SSH-Zugang über Benutzername und Passwort ein kritischer Punkt für die Sicherheit sein. Meist wählt man Passwörter, die leicht zu merken sind (auch wenn sie Sonderzeichen enthalten, etwa Ci@oM0nd0): Das kann Sie Zugriffsversuchen böswilliger Nutzer aussetzen — mit der Brute-Force-Technik lässt sich Ihr Passwort nämlich herausfinden.

Diese Angriffstechnik besteht im Wesentlichen darin, Anmeldeversuche am Server mit einer Datenbank bekannter Passwörter durchzuführen, bis das richtige gefunden ist. Wenn Sie der eingangs genannten Anleitung gefolgt sind, haben Sie bereits einen unprivilegierten Benutzer eingerichtet, der sudo verwenden kann, und Fail2ban installiert, um unerwünschte Zugriffsversuche fernzuhalten. Mit den nächsten Schritten erhöhen wir die Sicherheit des VPS weiter.

Voraussetzungen

  1. Ein VPS mit Linux-Betriebssystem
  2. Ein Benutzer mit angemessenen Rechten, also sudo (in diesem Beispiel heißt er utente_vps)
  3. Ihr eigener Computer muss macOS oder eine beliebige Linux-basierte Distribution verwenden
  4. Die Anwendung ssh-keygen, unter Linux und macOS normalerweise vorhanden
  5. Die Anwendung ssh-copy-id, unter Linux und macOS normalerweise vorhanden

In dieser Anleitung sehen wir, wie man das SSH-Schlüsselpaar mit ssh-keygen erstellt, das Teil von OpenSSH ist.

Wie der Zugang über SSH-Schlüssel funktioniert

Bevor wir loslegen, ein kurzer Blick auf die Funktionsweise. Ein SSH-Schlüsselpaar besteht, wie der Name schon sagt, aus zwei kryptografischen Schlüsseln, einem öffentlichen und einem privaten, mit denen sich ein Client an einem SSH-Server authentifiziert. Der private Schlüssel verbleibt beim Client und muss sicher verwahrt und geheim gehalten werden: Wird er kompromittiert, verloren oder gestohlen, erlaubt er demjenigen, der ihn besitzt, den Zugriff auf den Server. Der zugehörige öffentliche Schlüssel kann ohne jede Folge geteilt werden und wird üblicherweise auf den Server geladen, auf den man zugreifen möchte. Er dient nämlich dazu, die „Nachrichten“ zu verschlüsseln, die nur der private Schlüssel entschlüsseln kann.

In einer Standardkonfiguration wird der öffentliche Schlüssel in die Datei authorized_keys im Ordner ~/.ssh/ jedes berechtigten Benutzers eingetragen. Wenn ein Client versucht, sich per SSH mit dem Server zu verbinden, prüft der Dienst, ob der Benutzer im Besitz des privaten Schlüssels ist: Bei positivem Ergebnis wird der Zugriff gewährt.

Schritt 1 — Erzeugen der Schlüssel mit ssh-keygen

  1. Öffnen Sie die Terminal-Anwendung
  2. Geben Sie den Befehl ein:
    $ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/tuo_utente_macos/.ssh/id_rsa):
    oder, wenn Sie unter Linux arbeiten:
    Enter file in which to save the key (/home/tuo_utente_linux/.ssh/id_rsa):
    Sie werden gefragt, wo das Schlüsselpaar gespeichert werden soll: Sie können den vorgeschlagenen Pfad übernehmen oder einen beliebigen anderen wählen. Sollte bereits ein Schlüsselpaar existieren, erscheint die Meldung:
    /Users/tuo_utente_macos/.ssh/id_rsa already exists.
    Overwrite (y/n)?
    In diesem Fall liegt es an Ihnen, ob Sie es überschreiben oder den Vorgang abbrechen und ihn mit einem anderen Speicherpfad für die neuen Schlüssel wiederholen.
  3. Für mehr Sicherheit können Sie zusätzlich eine Passphrase festlegen, die Sie bei jeder Verwendung der Schlüssel eingeben müssen. Die Entscheidung liegt bei Ihnen: Wenn Sie die EINGABETASTE drücken, ohne etwas einzugeben, benötigen Sie kein Passwort.

Damit haben wir das Schlüsselpaar erzeugt, gespeichert unter dem zu Beginn des Vorgangs angegebenen Pfad (normalerweise das versteckte Verzeichnis .ssh in Ihrem Benutzerprofil): Im Beispiel finden Sie es unter /Users/tuo_utente_macos/.ssh/ oder /home/tuo_utente_linux/.ssh/. In dem Ordner finden Sie zwei Dateien, id_rsa und id_rsa.pub: Wie der Name andeutet, ist id_rsa.pub der öffentliche Schlüssel, der auf Ihren VPS geladen werden muss, während id_rsa der private Schlüssel ist und keinesfalls geteilt werden darf.

Schritt 2 — Wir kopieren den Schlüssel auf den VPS

Kopieren wir nun den öffentlichen Schlüssel auf den VPS. Hier kommt uns der Befehl ssh-copy-id zu Hilfe: Geben Sie in der Terminal-Anwendung Ihres macOS oder Linux ein:

$ ssh-copy-id Nome_Utente@IPv4_del_VPS
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/tuo_utente_macos/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Nome_Utente@IPv4_del_VPS's password:

In jedem Fall müssen Sie das Passwort Ihres Benutzers auf dem VPS eingeben, um die Kopie zu bestätigen.

Number of key(s) added:        1
Now try logging into the machine, with:   "ssh 'Nome_Utente@IPv4_del_VPS'"
and check to make sure that only the key(s) you wanted were added.

Wenn alles korrekt ausgeführt wurde, gelangen Sie nun bei der SSH-Verbindung zum VPS mit dem unprivilegierten Benutzer direkt zur Remote-Konsole, ohne dass das Passwort abgefragt wird — es sei denn, Sie haben beim Erzeugen der Schlüssel eine Passphrase festgelegt: In diesem Fall verwenden Sie nicht das Passwort Ihres Benutzers auf dem VPS, sondern die Passphrase, die Sie festgelegt haben.

Fazit

Ab jetzt greifen Sie mit einem Quäntchen mehr Sicherheit auf Ihren VPS zu. Eine weitere Maßnahme können Sie noch ergreifen: Jetzt, da die Schlüssel funktionieren, können Sie den Passwort-Zugang zum SSH-Dienst vollständig deaktivieren.

Diese Anleitung erschien ursprünglich im Blog von VPS GREEN, dem VPS-Dienst auf unserer grünen Private Cloud.

Diesen Artikel teilen

LinkedIn X Email

Lympha-Redaktion

Die Artikel dieses Blogs entstehen aus der Praxiserfahrung unserer Business Units und Kompetenzzentren: Es schreiben diejenigen, die die Systeme, über die wir berichten, täglich planen, betreiben und supporten. Die Inhalte dienen der Information und geben den Stand der Technik zum Zeitpunkt der Veröffentlichung wieder.

Das könnte Sie auch interessieren