Wie man passwortlose SSH Logins unter Linux aktiviert
Es ist eine hervorragende Idee, sich ohne Passwort bei Ihrem sicheren Server anzumelden. Ernsthaft, loswerden. Es ist nicht notwendig, ein Passwort für einen der am meisten angegriffenen Dienste auf Webservern zu verwenden, richtig?
Okay, genug Witze. Es ist aber wahr. Die standardmäßige passwortbasierte Authentifizierung für SSH ist keine gute Idee. Passwörter können relativ leicht beschädigt werden, und wenn sie das einzige sind, was zwischen einem Angreifer und einem uneingeschränkten Zugriff auf Ihren Server steht, sollten Sie auf jeden Fall nervös sein.
Aus diesem Grund ist die RSA-basierte Authentifizierung viel besser. Sie können Ihren Linux-Server so konfigurieren, dass nur der Zugriff von Computern mit den RSA-Schlüsseln zugelassen wird, die er bereits akzeptiert hat. Jeder andere wird sofort abgelehnt. Als zusätzlichen Vorteil können Sie diese Schlüssel mit oder ohne Passwort erstellen, was Ihnen überlassen ist. Ein starker Schlüssel ohne Passwort ist in den meisten Fällen jedoch in Ordnung.
Wenn Sie Linux-Geräte auch zu Hause verwenden, haben Sie den zusätzlichen Vorteil der Bequemlichkeit. Nehmen wir an, Sie möchten von Ihrem Laptop aus eine SSH-Verbindung zu Ihrer Linux-Workstation aufbauen. Möchten Sie Ihr Passwort wirklich jedes Mal eingeben? Richten Sie SSH-Schlüssel ein und das müssen Sie nicht.
Installieren Sie die Pakete
Es gibt ein paar Pakete, die Sie brauchen. Sie haben wahrscheinlich schon einige von ihnen, aber es ist eine gute Idee zu überprüfen. Die Pakete unterscheiden sich auf dem Server und dem Client, aber es gibt auch eine gute Chance, dass beide Maschinen Server und Clients füreinander sind (Home-Situation), also möchten Sie möglicherweise beide Pakete installieren.
Auf dem Server
Der Server benötigt nur den OpenSSH-Dienst, der installiert und ausgeführt wird. Es ist nicht standardmäßig auf Debian und Ubuntu Systemen. Wenn Sie es noch nicht installiert haben, tun Sie es.
sudo apt installiert openssh-server
Auf dem Client
Der Client benötigt das OpenSSH-Client-Paket. OpenSSH verfügt über ein integriertes Dienstprogramm zum Generieren von Schlüsseln.
sudo apt installiert openssh-client
Erzeuge deinen Schlüssel
Es ist wirklich einfach, deinen Schlüssel zu generieren. Sagen Sie OpenSSH, dass Sie den Schlüssel generieren müssen. Es ist auch eine gute Idee, die Anzahl der Bits mit dem -b
Flag und den Typ mit -t
anzugeben. Ein 4096-Bit-Schlüssel ist am besten. Es bietet eine stärkere Verschlüsselung.
ssh-keygen -b 4096 -t rsa
Zuerst fragt das Dienstprogramm, wo Sie den Schlüssel speichern möchten. Drücken Sie einfach die Eingabetaste für das Standardverzeichnis. Dann wird nach einem Passwort gefragt. Lassen Sie dieses Feld für einen kennwortlosen Schlüssel und eine kennwortlose Authentifizierung leer. Wenn Sie ein Passwort für Ihren Schlüssel verwenden möchten, geben Sie diesen ein.
Ihr Computer benötigt einige Sekunden, um Ihren Schlüssel zu generieren. Wenn es fertig ist, wird es Ihnen sagen, dass es fertig ist und ein ASCII-Kunstbild ausdrucken.
Schick deinen Schlüssel
Um Ihren Schlüssel zu verwenden, müssen Sie ihn an Ihren Server senden. OpenSSH hat auch ein anderes eingebautes Dienstprogramm dafür. Sagen Sie ihm, wo sich Ihr Schlüssel befindet und mit welchem Benutzer auf dem Server er verbunden ist.
ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]
Geben Sie die IP-Adresse des Servers ein. Es ist so, als würden Sie über SSH auf den Server zugreifen (Sie sind es), aber es wird nur über den Schlüssel gesendet.
Versuchen Sie danach erneut auf den Server über SSH zuzugreifen. Diesmal sollte es dich einfach ohne Passwort passieren lassen.
Konfigurieren Sie SSH, um Kennwörter zu blockieren
Für die beste Sicherheit müssen Sie die SSH-Passwort-Logins auf dem Server deaktivieren. Die SSH-Server-Konfiguration finden Sie unter "/ etc / ssh / sshd_config". Öffnen Sie diese Datei auf dem Server mit sudo
und Ihrem bevorzugten Texteditor.
Suchen Sie die folgenden Zeilen und bearbeiten Sie sie wie in dem Beispiel. Kommentieren Sie beide Einträge und ändern Sie die Werte auf " no
.
PasswordAuthentication Nein PermitEmptyPasswords Nein
Das macht nichts, wenn Sie die PAM-Authentifizierung aktiviert lassen. Suchen Sie die Zeile unten und legen Sie sie auf no
.
UsePAM-Nr
Nachdem die Einträge geändert wurden, speichern und beenden Sie die Datei und starten Sie den SSH-Server neu, damit sie wirksam werden.
sudo systemctl sshd neu starten
Wenn Sie weiterhin die Kennwortauthentifizierungsmethode beibehalten möchten, vergessen Sie nicht, die Zwei-Faktor-Authentifizierung als zusätzliche Schutzebene einzurichten.
Das ist es! Ihr Server ist nun viel sicherer, ohne Passwörter. Außerdem haben Sie den zusätzlichen Vorteil, dass Sie sie nicht eingeben müssen. Sie können Ihren einzelnen Schlüssel auch mit so vielen Servern austauschen, wie Sie möchten.