Home » Netzwerk & Sicherheit » Sicher per SSH einloggen

Sicher per SSH einloggen

Sicher per SSH einloggen

In diesem Artikel erkläre Ich Euch wie Ihr Euch sicher per SSH-Schlüsselpaar auf Euren Server und Diensten die Ihr evt Ihm Heimnetz betreibt, einloggen könnt. Dazu klären wie zuerst folgende Fragen: Was ist eigentlich SSH oder Secure Shell? SSH oder Secure Shell ist ein verschlüsseltes Protokoll zur Verwaltung und Zugriff und Kommunikation mit Servern. Wenn Ihr viel mit einem Server über die Konsole arbeitet, ist die Verbindung zu 99%  eine SSH Verbindung. Auch das Programm Putty verbinden sich via SSH mit seinem Gegenüber.

In diesem Leitfaden konzentrieren wir uns auf die Einrichtung von SSH-Schlüsseln zum sicheren Login auf unseren Servern. SSH-Schlüssel bieten eine einfache, und sehr sichere Möglichkeit des Logins an Eurem Server. Einige Erfahrungen habt Ihr damit eventuel hier in diesem Artikel gemacht. Ich empfehle diese Methode vor allem für Server die sicherheitskritische Daten beinhalten.

Es gibt verschiedene Methoden, um sich bei einem SSH-Server zu authentifizieren. Die grundlegendste davon ist die Passwort-Authentifizierung. Sie ist einfach anzuwenden, meisst aber nicht die sicherste. Das liegt daran dass die Verarbeitungsleistung von Attacken mit Skripten das brute-forcen von Passwörter heute sehr hoch ist. Hartnäckige Angreifer können bei viel Geduld ein nicht sicher gewähltes Passwort auch schonmal in kurzer Zeit knacken.

SSH-Schlüsselpaare sind zwei kryptografisch sichere Schlüssel, die zur Authentifizierung eines Clients gegenüber einem SSH-Server verwendet werden können. Jedes Schlüsselpaar besteht aus einem öffentlichen Schlüssel und einem privaten Schlüssel. Der öffentliche Schlüssel wird aus dem privaten Schlüssel errechnet, diesen kann man auf einem Server ablegen, der Server überprüft dann, ob der Client in der Lage ist, sich mit dem dazugehörigen privaten Schlüssel zu authentifizieren.

Es gibt noch andere Methoden um zusätzliche Sicherheit (fail2ban usw.) hinzuzufügen, heute konzentrieren wir uns aber auf das Login mit einem SSH-Schlüsselpaar.

Einrichtung / Vorbereitungen

Die meissten Linux Distributionen kommen bereits mit  openSSH vorinstalliert und benötigen meisst keine weitere Einrichtung bzw Erzeugung eines Schlüsselpaars, da einer bereits vom System erstellt worden ist. Habt Ihr Euch bereits schonmal via SSH irgendwo eingeloggt, habt Ihr bereits ein Schlüsselpaar welcher sich in einem geheimen Verzeichnis befindet.

Überprüft zuerst einmal ob Ihr bereits über einen Schlüssel verfügt. Das geht ganz einfach indem Ihr ohne sudo folgendes in die Konsole eingebt:

cat /home/BENUTZERNAME/.ssh/id_rsa.pub

Habt Ihr eine Ausgabe mit vielen verrückten Buchstaben, habt Ihr bereits ein SSH-Schlüsselpaar! Habt Ihr keine Ausgabe, erstellen wir uns ein neues Schlüsselpaar. Das geht mit:

ssh-keygen -t 2048

Das Tool fragt Euch nun, ob Ihr euren Privaten Schlüssel mit einer Passphrase schützen möchtet. Das könnt Ihr tun ob eine zusätzliche Sicherheitsebene hinzufügen. Bei einem zukünftigen Login über ein Keypaar wird dann zusätzlich zur Keyabfrage gleich noch das Passwort für den privaten Schlüssel abgefragt. In dem meissten Fällen und im privaten Gebrauch, ist eine Passphrase nicht nötig. Entscheidet Euch für eine Variante und bestätigt Eure Entscheidung. Falls kein Passwort erwünscht, lasst die Anfrage leer und bestätigt mit Enter. Anschliessend wird das Schlüsselpaar im Ordner /home/BENUTZERNAME/.ssh/ erstellt.

Kopieren des Schlüssel auf Euren Server

Jetzt müssen wir unseren öffentlich Schlüssel noch auf unseren Server hochladen. Dafür gibt es zwei einfache Methoden. Eine automatische, und eine manuelle Methode.

SSH-Copy-ID Methode

Fangen wir mit der automatischen Methode an. Diese nennt sich SSH-Copy-ID und ist ein Standardwerkzeug, um öffentliche Schlüssel auf Eure Server zu übertragen. Diese setzt vorraus, dass eine Passwortanmeldung auf Eurem gewünschten Server möglich ist und funktioniert.

Um das Utility zu verwenden, müssen wir also den Benutzernamen, das Passwort und die IP Adresse haben Die Syntax lautet: ssh-copy-id benutzername@IPAdresse, beispielsweise also

ssh-copy-id mario@xxx.xxx.xx.xxx

Habt Ihr Euch bereits mit dem Server verbunden, kommt keine Anfrage ob wir dem Host vertrauen wollen, falls Ihr Euch doch das erste mal auf dem Server einloggt, bestätigt mit yes

Das Tool durchsucht nun kurz die ID Eures Rechners, und fragt dann natürlich nach dem Passwort des Servers, gebt es unsichtbar ein und bestätigt.

Anschliessen bekommt Ihr eine Meldung, falls der Schlüssel erfolgreich hinzugefügt worden ist:

Manuelle Methode

Falls auf dem Server SSH-Copy-ID gesperrt ist, oder nicht richtig funktioniert können wir das ganze manuel mit einem einzigen Befehl machen. der Syntax dazu lautet:

cat ~/.ssh/id_rsa.pub | ssh BENUTZER@IPAdresse mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys

Dabei ist nur BENUTZER und IPAdresse mit Euren Daten des Hosts zu ersetzen.

Anschliessend kommt wieder die Passwortabfrage des Servers. Gebt Euer Passwort ein und bestätigt die Eingabe.
Anschliessend kommt keine Meldung wie bei SSH-Copy-ID! Eine Ausgabe ohne Fehler ist eine erfolgreiche Eingabe.

Falls Ihr Euren Public-Key nun erfolgreich auf Eurem Server abgelegt habt, könnt Ihr Euch anschliessend nur mit "ssh benutzer@IPAdress" auf Eurem Server anmelden. Der Server registriert, dass Ihr den Privaten Schlüssel des hinterlegten Keys habt, und authentifziert Euch als sicheren Benutzer.

Passwort-Login auf dem Server deaktivieren

Nun könnt Ihr Euch zwar via mit Eurer ID sicher anmelden, die Passworteingabe auf Eurem Server ist aber immer noch für andere Clients möglich, und die Türen für Angriffe sind weiterhin offen. Damit das nicht mehr möglich ist, deaktivieren wir die Passwort gestützte Anmeldung auf dem Server.

Dazu öffnen wir auf dem Remote bzw auf dem Server die SSH Konfigurationsdatei. Das geht mit:

sudo nano /etc/ssh/sshd_config

Sucht nach dem Eintrag #PasswortAuthentication yes

kommentiert den Eintrag aus und ändert yes zu no

Speichert die Datei mit strg+o ab und beendet mit strg+x

Damit die Einstellungen geladen werden, müssen wir den SSH-Service kurz neu starten, das geht mit:

sudo service ssh restart

Anschliessend ist die Passwortgestützte Eingabe deaktiviert. Nur noch Rechner mit einem Schlüsselpaar können sich beim Server anmelden. Bitte stellt unbedingt sicher dass euer Login via SSH-Key funktioniert. Ansonsten wirds nun schwierig mit der Anmeldung 🙂

Zusätzliches

Damit haben wir nun eine weitere Sicherheitsebene beim Thema Login hinzugefügt. Das ganze geht natürlich auch mit einer Passphrase für den SSH-Key beim erstellen des Keys. Die Vorteile einer Passphrase sind folgende:

  • Der private SSH-Schlüssel (der Teil, der mit einer Passphrase geschützt werden kann) wird niemals im Netzwerk offengelegt. Die Passphrase wird nur zur Entschlüsselung des Schlüssels auf dem lokalen Rechner verwendet. Das bedeutet, dass netzwerkbasiertes Brute-Forcing gegen die Passphrase nicht möglich ist.
  • Der private Schlüssel wird innerhalb eines eingeschränkten Verzeichnisses aufbewahrt. Der SSH-Client erkennt keine privaten Schlüssel, die nicht in diesem Verzeichnis aufbewahrt werden. Der Schlüssel selbst muss bzw hat ebenfalls eingeschränkte Berechtigungen haben (Lese- und Schreibrechte nur für den Eigentümer) die überprüft werden. Das bedeutet, dass andere Benutzer auf dem System nicht herumschnüffeln können.
  • Jeder Angreifer, der hofft, die Passphrase des privaten SSH-Schlüssels zu knacken, muss bereits Voll-Zugriff auf das System haben. Sollte der Hacker sich bereits in dieser Position befinden, kann die Passphrase den Angreifer daran hindern, sich sofort an Ihren anderen Servern anzumelden. Dies gibt Euch hoffentlich Zeit zur Erstellung und Implementierung eines neuen SSH-Schlüsselpaares und zum Entfernen des Zugriffs des kompromittierten Schlüssels.

Abschluss

Ihr dürft auf keinen Fall den Schlüssel mit einem anderen, bzw neuen KeyPaar ersetzen, ansonsten funktioniert die Anmeldung auf Euren Diensten nicht mehr! Auch müsst Ihr die Schlüssel sichern, falls Ihr vorhabt Euer System neu zu installieren, den bei einem neu installiertem System, habt Ihr auch wieder neue Keys! Es ist Ratsam auf einem verschlüsseltem USB Stick ein Kopie der Schlüssel aufzubewahren, falls das System aus irgenwelchen Gründen beschädigt, bzw unbrauchbar wird! Ohne Euren Privatekey kommt Ihr ansonsten nicht mehr auf Euren Server!

Nun sind wir auch schon am Schluss des heutigen Artikels und haben einige Grundlagen bzgl SSH kennen gelernt. Wer mehr zum Thema SSH erfahren möchte, der kann sich hier schlau machen.

Ich hoffe der Artikel "sicher per SSH einloggen" hat Euch heute gefallen. Falls Ihr Fragen habt, schreibt sie in die Kommentare!

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert