SSH ist eine großartige Technologie; Sie können damit den VPN-Verkehr verbergen, Ihre Verbindung zu Websites sichern und vieles mehr. Das einzige Problem ist, dass Sie jedes Mal, wenn Sie versuchen, sich bei einem Remote-Computer anzumelden, Ihr Passwort eingeben müssen, und das kann mühsam sein. Wenn Sie ein Entwickler sind, der sich mit einem Bash-Skript mit vielen Computern gleichzeitig über SSH verbinden möchte, oder einfach nur jemand, der Secure Shell verwendet und es satt hat, Passwörter einzugeben, gibt es eine Lösung: passwortloses SSH. Dieser Prozess umfasst das Generieren eines sicheren SSH-Schlüssels auf dem Hostcomputer und dessen gemeinsame Nutzung als Möglichkeit für den Zugriff auf den PC. Dadurch kann sich jeder mit dem Schlüssel anmelden, auch wenn er das Passwort nicht kennt. Hier erfahren Sie, wie Sie es in Gang bringen.
Inhaltsverzeichnis
Was sind SSH-Schlüssel?
Ein SSH-Schlüssel ist eine eindeutige Identifikationsdatei, die mit Secure Shell verwendet wird. Der Zweck dieser Schlüssel besteht darin, dem Benutzer eine eindeutige Identität zuzuweisen und ihn bei der Anmeldung als „vertrauenswürdig“ zu markieren. Diese Schlüssel selbst sind mehr als nur Dateien, die die Identität einer Person beweisen. Tatsächlich ermöglicht SSH Benutzern, sich mit einem Schlüssel statt mit einem Passwort anzumelden. Das heißt, anstatt jedes Mal ein Passwort eingeben zu müssen, wenn Sie sich über SSH anmelden, verwenden Sie den SSH-Schlüssel.
Der SSH-Schlüssel wird an einer sicheren Stelle in Ihrer Linux-Installation abgelegt, und von dort aus können Sie sich so oft wie Sie möchten ohne Passwort bei der Remote-Maschine anmelden.
Generieren von sicheren SSH-Schlüsseln
Das Generieren eines sicheren SSH-Schlüssels erfordert zunächst, dass SSH betriebsbereit ist. Beachten Sie, dass dies nicht unbedingt bedeutet, dass Sie einen SSH-Server benötigen. Nur dass die grundlegenden SSH-Tools und -Technologien auf Ihrem Linux-PC ausgeführt werden. Sie sind sich nicht sicher, wie Sie SSH einrichten sollen? Folgen Sie unserer Anleitung dazu hier.
Generieren Sie die SSH-Schlüssel immer auf dem System, das den SSH-Server hostet. Versuchen Sie nicht, sie auf dem Server zu generieren, auf dem keine SSH-Sitzung gehostet wird, und kopieren Sie sie auf den SSH-Hostcomputer. Es wird nicht funktionieren.
Um den Schlüsselgenerierungsprozess zu starten, öffnen Sie ein Terminal. Führen Sie im Terminalfenster Folgendes aus:
ssh-keygen -t rsa
Beim Ausführen von ssh-keygen wird „Generating public/private rsa key pair“ ausgegeben. Das bedeutet, dass das System Ihnen sowohl einen öffentlichen Schlüssel als auch einen privaten Schlüssel zur Verwendung generiert. Öffentliche Schlüssel sind diejenigen, die jeder verwenden kann, und Sie sollten damit einverstanden sein, sie herauszugeben. Ein privater Schlüssel hingegen ist etwas, das Sie niemals mit jemandem teilen sollten. Daher der Name „privat“.
Die Schlüssel speichern sich selbst unter /home/username/.ssh/id_rsa.
Hinweis: LÖSCHEN SIE NICHT den Ordner ~/.ssh, da er Ihre Schlüssel enthält. Wenn Sie diesen Ordner auf irgendeine Weise manipulieren und dann versuchen, sich remote bei diesem Computer anzumelden, schlägt die SSH-Eingabeaufforderung fehl. Es druckt auch eine Warnung und sperrt Sie aus.
SSH-Schlüssel auf dem Remote-Computer
Nachdem die SSH-Schlüssel (sowohl öffentliche als auch private) erstellt und einsatzbereit sind, müssen Sie sie auf das System kopieren, von dem aus Sie sich anmelden möchten. Es ist wichtig, dass Sie diesen Vorgang auf allen Computern wiederholen, auf denen Sie sich über SSH anmelden möchten. Andernfalls müssen sich diejenigen, die den Schlüssel nicht haben, mit der Passwortmethode anmelden.
Folgen Sie diesem Beispiel, um die Schlüssel zum Remote-System hinzuzufügen. Stellen Sie sicher, dass Sie dies vom Hostcomputer über SSH tun.
ssh [email protected] mkdir -p .ssh
Durch Ausführen dieses ssh-Befehls wird ein versteckter ~/.ssh-Ordner im Home-Verzeichnis des Remote-Computers erstellt (mit dem Benutzer, der zum Anmelden verwendet wurde). Dieser Ordner ist wichtig, da wir in diesen Ordner die neu generierten SSH-Schlüsseldateien kopieren.
Um die SSH-Schlüsseldateien zu kopieren, führen Sie noch einen weiteren Befehl vom SSH-Hostcomputer zum Remotecomputer aus, der die Schlüssel benötigt:
cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
Das Kopieren dauert je nach Netzwerkgeschwindigkeit einige Sekunden. Wenn der Vorgang abgeschlossen ist, verfügt der Remote-PC über die generierten Schlüssel und kann sich ohne Kennwort beim SSH-Host-PC anmelden.
Sichern von SSH-Schlüsseln
SSH-Schlüssel sind nützliche Dinge, und jeder ist einzigartig. Aus diesem Grund ist es die beste Vorgehensweise, sie zu unterstützen. Das Problem ist, wenn Sie es woanders speichern, kann jemand Ihren SSH-Schlüssel finden, ihn behalten und für sich selbst verwenden. Die Frage ist also, was ist ein guter Weg, um einen SSH-Schlüssel sicher zu sichern? Verschlüsselung.
Der schnellste, effizienteste (und einfachste Weg) zum Verschlüsseln ist die Verwendung von GnuPG. Das Tool selbst ist in die meisten Verschlüsselungstools bereits unter Linux integriert und ist die erste Wahl, wenn es um die Verschlüsselung von Dateien geht. Um GnuPG zu installieren, öffnen Sie ein Terminal und durchsuchen Sie Ihren Paketmanager nach „gpg“. Das Programm sollte leicht zu finden sein, selbst auf sehr obskuren Linux-Distributionen.
Sobald GPG betriebsbereit ist, starten Sie den Verschlüsselungsprozess, indem Sie Ihr ~/.ssh-Verzeichnis in eine tar-Archivdatei komprimieren. Auf diese Weise müssen Sie nicht jede einzelne Datei im Ordner ~/.ssh einzeln verschlüsseln.
tar -czvf ssh-stuff.tar.gz /home/username/.ssh
Wenn die Komprimierung abgeschlossen ist, starten Sie den Verschlüsselungsprozess.
Hinweis: Führen Sie vor dem Verschlüsseln gpg im Terminal aus, um einen neuen Schlüsselbund zu generieren.
gpg -c ssh-stuff.tar.gz
Wenn der Verschlüsselungsprozess abgeschlossen ist, gibt GnuPG eine Datei mit dem Label „ssh-stuff.tar.gz.gpg“ aus. Fühlen Sie sich frei, die ursprüngliche, entsperrte Version der Datei zu löschen. Gehen Sie wie folgt vor, um Ihr Sicherungsarchiv zu entschlüsseln:
gpg ssh-stuff.tar.gz.gpg