Sichern Sie Ihr SSH mit einer passwortlosen Verbindung
Einleitung
SSH ist ein unverzichtbares Werkzeug für jeden Linux-Benutzer, aber viele Leute machen nicht das Beste aus seinen robusten Funktionen, nämlich sicheren Anmeldungen mit Schlüsseln.
Mit SSH-Schlüsselpaaren können Sie sich viel sicherer anmelden, indem Sie die Anmeldungen auf die Computer beschränken, die über einen verschlüsselten Schlüssel verfügen, der mit dem Anmeldeziel gekoppelt wurde. Im Gegensatz zu Passwörtern können diese Schlüssel nicht erraten werden, sodass Sie sich keine Sorgen machen müssen, dass jemand Tausende von Passwörtern ausprobiert, um in Ihren Computer oder Server einzudringen. Kein Schlüssel ist gleichbedeutend mit keinem Zugang.
Die gute Nachricht ist; Diese Schlüssel sind sehr einfach einzurichten und zu verwenden, sodass Sie sich keine Gedanken über die Pflege von Konfigurationen oder einen langen Einrichtungsprozess machen müssen.
Die Notwendigkeit von Schlüsseln
Wenn Sie einen öffentlich zugänglichen Computer ausführen, benötigen Sie diese Schlüssel. Es tut uns leid, aber wenn Sie die Passwortauthentifizierung verwenden, sind Sie anfälliger.
Passwörter sind schrecklich. Das ist schon länger hinlänglich bekannt. Die meisten großen Webanwendungen und Dienstprogramme, die auf Passwörtern basieren, bieten eine 2-Faktor-Authentifizierung an, da sie die Mängel selbst der stärksten Passwörter erkennen. Bei SSH sind Schlüssel der zweite Authentifizierungsfaktor. Sie stellen einen zweiten Schritt dar, um nur autorisierten Zugriff auf ein System zu gewährleisten.
Generieren eines Schlüsselpaars
Der Großteil der Arbeit wird hier auf Ihrem gewünschten Client-System erledigt, und Sie senden einen der Schlüssel im Paar an den Server, auf den Sie zugreifen möchten.
Wenn Sie sich nicht zu sehr mit der Anpassung des Schlüsselgenerierungsprozesses beschäftigen möchten, ist das eigentlich in Ordnung. Die meisten Optionen, die der Befehl zum Generieren von Schlüsseln bietet, sind unter normalen Umständen nicht allzu nützlich.
Die einfachste Methode zum Generieren eines Schlüssels ist der folgende Linux-Befehl.
ssh-keygen -t rsaMit diesem Befehl führen Sie fast alles mit den Standardeinstellungen aus. Das einzige, was Sie angeben müssen, ist die Art der verwendeten Verschlüsselung, rsa.
Sie werden gefragt, ob Sie ein Passwort für Ihren Schlüssel angeben möchten. Das ist nicht unbedingt notwendig, und viele Menschen tun es auch nicht. Wenn Sie eine zusätzliche Sicherheitsebene wünschen, fügen Sie auf jeden Fall auch eine starke Passphrase hinzu. Beachten Sie jedoch, dass Sie es jedes Mal eingeben müssen, wenn Sie eine Verbindung mit diesem Schlüssel herstellen.
Es gibt eine weitere Option, die Sie verwenden können, wenn Sie Ihrem Schlüssel mehr Sicherheit hinzufügen möchten. Indem Sie das Flag -b zu Ihrem Befehl ssh-keygen hinzufügen, können Sie die Anzahl der verwendeten Bits angeben. Der Standardwert ist 2048, was in den meisten Fällen in Ordnung sein sollte. So sieht ein Beispiel aus.
ssh-keygen -b 4096 -t rsaÜbertragen eines Schlüssels auf den Server
Damit das Ganze funktioniert, müssen Sie dem Gerät, mit dem Sie eine Verbindung herstellen möchten, einen Teil des Schlüsselpaars geben. Deshalb werden sie ja auch paarweise generiert. Die Dateien mit dem .key ist Ihr privater Schlüssel. Teilen oder verteilen Sie diese nicht. Die Datei mit der Erweiterung .pub sollte jedoch an die Computer gesendet werden, mit denen Sie eine Verbindung herstellen möchten.
Die meisten Linux-Systeme werden mit einem sehr einfachen Skript geliefert, mit dem Sie Ihren öffentlichen Schlüssel auf die Computer übertragen können, mit denen Sie eine Verbindung herstellen möchten. Dieses Skript, ssh-copy-id, ermöglicht es Ihnen, Ihren Schlüssel mit nur einem Befehl zu senden.
ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.1Natürlich würden Sie den Benutzernamen des Benutzers, mit dem Sie auf dem Zielcomputer eine Verbindung herstellen würden, und die tatsächliche IP-Adresse dieses Computers ersetzen. Ein Domainname oder Hostname würde auch funktionieren.
Wenn Sie Ihren Server für die Verwendung von SSH an einem anderen Port konfiguriert haben, können Sie den Port für ssh-copy-id angeben, indem Sie das Flag -p gefolgt von der gewünschten Portnummer verwenden.
Einloggen
Die Anmeldung über SSH sollte in etwa die gleiche sein wie zuvor, außer dass Sie Ihr Schlüsselpaar zur Validierung verwenden. Verbinden Sie sich einfach über SSH, wie Sie es normalerweise tun würden.
ssh username@192.168.1.1Wenn Sie kein Passwort für Ihren Schlüssel konfiguriert haben, melden Sie sich automatisch an. Wenn Sie ein Kennwort hinzugefügt haben, werden Sie aufgefordert, es einzugeben, bevor Sie vom System angemeldet werden.
Deaktivieren von Passwort-Logins
Jetzt, da Sie SSH-Schlüssel für die Anmeldung verwenden, ist es eine gute Idee, passwortbasierte Anmeldungen für SSH zu deaktivieren. Auf diese Weise sind Sie nicht anfällig dafür, dass jemand das Passwort für eines Ihrer Konten entdeckt und es verwendet. Alle Passwort-Logins werden deaktiviert.
Suchen Sie auf dem Computer, mit dem Sie eine Verbindung herstellen möchten, vermutlich einem Server, die SSH-Konfigurationsdatei. Es befindet sich normalerweise unter /etc/ssh/sshd_config. Öffnen Sie diese Datei in einem Texteditor Ihrer Wahl als root oder mit sudo.
vim /etc/ssh/sshd_configSuchen Sie die Zeile PasswordAuthentication, kommentieren Sie sie aus, wenn Sie müssen, und setzen Sie den Wert auf no.
PasswordAuthentication noEs gibt noch ein paar andere Optionen, die Sie in diesem Abschnitt ändern sollten, um die Sicherheit zu erhöhen. Auf diese Weise sind nur Anmeldungen mit Ihrem Schlüssel erlaubt.
PasswordAuthentication no
PermitEmptyPasswords no
HostbasedAuthentication no
Wenn Sie fertig sind, speichern und beenden Sie die Datei. Sie müssen den SSH-Dienst neu starten, damit die Änderungen wirksam werden.
systemctl restart sshdoder
/etc/init.d/sshd restartAbschließende Gedanken
Mit nur minimalem Aufwand ist die SSH-Verbindung Ihres Servers viel sicherer geworden. Passwörter sind in vielerlei Hinsicht problematisch, und SSH ist einer der am häufigsten angegriffenen Dienste im Internet. Nehmen Sie sich die Zeit, SSH-Schlüssel zu verwenden und stellen Sie sicher, dass Ihr Server gegen Passwortangriffe geschützt ist.