So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux

Es ist eine gute Idee, sich ohne Passwort bei Ihrem SSH-Server anzumelden. Im Ernst, weg damit. Für einen der am häufigsten angegriffenen Dienste auf Linux-Servern ist es nicht erforderlich, ein Passwort zu verwenden, oder? Bereiten Sicherung des SSH-Servers Die Verwendung einer standardmäßigen passwortbasierten Authentifizierung ist eine schlechte Idee. Passwörter können leicht von Angreifern geknackt werden, und wenn sie das Einzige sind, was zwischen dem Angreifer und Ihrem Server steht, sollten Sie auf jeden Fall nervös werden. Aus diesem Grund ist die schlüsselbasierte RSA-Authentifizierung so viel besser. Sie können Ihren Linux-Server so konfigurieren und sichern, dass der Zugriff nur von Computern zugelassen wird, die über bereits akzeptierte RSA-Schlüssel verfügen. Alle anderen werden sofort abgewiesen. Als zusätzlichen Bonus können Sie diese Schlüssel mit oder ohne Passwort generieren, es liegt ganz bei Ihnen. Trotzdem ist ein starker Schlüssel ohne Passwort in den meisten Fällen eine gute Sache. In diesem Handbuch erfahren Sie, wie Sie passwortlose SSH-Anmeldungen unter Linux aktivieren.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Wenn Sie zu Hause auch Linux-Rechner verwenden, haben Sie den zusätzlichen Komfortvorteil. Angenommen, Sie möchten eine SSH-X-Weiterleitung von Ihrer Linux-Workstation zu Ihrem Laptop einrichten. Möchten Sie Ihr Passwort wirklich jedes Mal eingeben, wenn Sie ein Remote-Programm starten? Richten Sie SSH-Schlüssel ein, das müssen Sie nicht.

Installieren Sie die Pakete

Es gibt einige Pakete, die Sie benötigen. Sie haben wahrscheinlich schon einige, aber es ist eine gute Idee, sie auszuprobieren. Die Pakete sind auf Server und Client gleich. Es besteht jedoch auch eine gute Chance, dass beide Computer die Server und Clients des anderen sind (Home State), daher sollten Sie sicherstellen, dass Sie diese Pakete installiert haben.

Auf anderen Systemen wird das OpenSSH-Metapaket nicht standardmäßig installiert Debian أو Ubuntu. Wenn Sie es noch nicht installiert haben, können Sie dies tun, indem Sie den folgenden Befehl ausführen:

sudo apt installiere ssh

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Erstellen Sie Ihren eigenen SSH-Schlüssel in Linux

Es ist wirklich einfach Erstellen Sie einen SSH-Schlüssel unter Linux. Teilen Sie OpenSSH einfach mit, dass Sie den Schlüssel generieren müssen. Es ist auch eine gute Idee, die Anzahl der Bits mit dem Flag -b und den Typ mit -t anzugeben. Ein 4096-Bit-Schlüssel ist am besten, da er eine stärkere Verschlüsselung bietet.

ssh-keygen -t ed25519

Zuerst fragt das Tool, wo Sie den Schlüssel speichern möchten. Einfach anklicken Enter in das Standardverzeichnis. Wenn Sie nach einem Passwort gefragt werden, lassen Sie es für einen passwortlosen Schlüssel und eine passwortlose Authentifizierung leer. Wenn Sie ein Passwort für Ihren Schlüssel verwenden möchten, geben Sie es hier ein.

Lesen Sie auch:  So verwenden Sie Troff zum Formatieren von PDF-Dokumenten unter Linux

Es dauert einige Sekunden, bis Ihr Computer Ihren Schlüssel generiert. Wenn Sie fertig sind, wird eine ASCII-Grafikdarstellung Ihres Schlüssels auf dem Gerät gedruckt.

Senden Sie Ihren Schlüssel an den Remote-Linux-Host

Um Ihren Schlüssel zu verwenden, müssen Sie ihn an Ihren Remote-Server senden. OpenSSH hat dafür auch ein anderes eingebautes Tool. Teilen Sie ihm mit, wo sich Ihr Schlüssel befindet und mit welchem ​​Benutzer auf dem Server er verknüpft werden soll.

ssh-copy-id -i ~/.ssh/id_ed25519.pub Benutzername@ip_remote_host

ersetzen ip_remote_host Mit der eigentlichen IP-Adresse des Remote-Hosts, den Sie per SSH verwalten. Ersetzen Sie den Benutzernamen durch den tatsächlichen Benutzernamen auf dem Remote-Host.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Es ist erforderlich, dass Sie die Option -i verwenden, um die Identitätsdatei anzugeben, die Ihren öffentlichen Schlüssel enthält. Wenn Sie versuchen, einen SSH-Schlüssel ohne diese Option zu verwenden, erhalten Sie möglicherweise eine Fehlermeldung.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Testen Sie Ihre SSH-Verbindung unter Linux

Mit dem SSH-Schlüssel auf dem Remote-Server können Sie nun testen, ob Ihre Verbindung ordnungsgemäß funktioniert.

Melden Sie sich mit dem folgenden Befehl an:

ssh-Benutzername@ip_remote_host

Der Remote-Host meldet Sie an, ohne nach dem Kennwort des Benutzerkontos zu fragen.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Wenn Sie während des Vorgangs jedoch einen Fehler machen, kehrt der SSH-Daemon automatisch zur Passwortauthentifizierung für Ihr Benutzerkonto zurück. Auf diese Weise können Sie weiterhin auf Ihren Remote-Server zugreifen, selbst wenn Sie einen nicht funktionierenden RSA-Schlüssel haben.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Konfigurieren Sie SSH so, dass Kennwörter blockiert werden

Für den besten Schutz müssen Sie SSH-Passwortanmeldungen auf Ihrem Linux-Server deaktivieren. Ähnlich wie bei der Aktivierung der Zwei-Faktor-Authentifizierung in SSH verhindert dies, dass jemand in Ihren Server eindringt.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Es ist wichtig, vorher sicherzustellen, dass Sie sich zuverlässig mit Ihrem SSH-Schlüssel anmelden können, da Sie sich mit einem defekten Schlüssel vom Remote-Server aussperren können.

Lesen Sie auch:  So erstellen Sie einen benutzerdefinierten Webbrowser mit Nyxt

Sie finden eine Konfigurationsdatei SSH-Daemon Ihre Datei in „/etc/ssh /sshd_config". Öffnen Sie die Datei auf dem Server mit sudo und Ihrem bevorzugten Texteditor. Öffnen Sie diese Datei beispielsweise mit nano, indem Sie den folgenden Befehl ausführen:

sudo nano / etc / ssh / sshd_config

Finden Sie die Zeilen unten, indem Sie auf klicken Strg + W und bearbeiten Sie es so, dass es wie im Beispiel aussieht. Entkommentieren Sie beide Einträge und ändern Sie die Werte auf Nein.

كلمة المرور

PasswordAuthentication nein PermitEmptyPasswords nein

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

einstellen PasswortAuthentifizierung Ob die Kennwortauthentifizierung verwendet werden soll. Wir stellen das ein "Nein" Weil wir nur SSH-Schlüssel verwenden wollen.

Bestimmt Leere Passwörter zulassen Ob der Server die Anmeldung mit einem leeren Passwort zulässt. Sie sollten dies niemals zulassen, also setzen wir es auf "Nein".

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Suchen Sie als Nächstes die Zeile „UsePAM“ und ändern Sie sie in „No“. Dadurch wird verhindert, dass der Daemon andere Authentifizierungsmethoden (Passwort, Kerberos usw.) als SSH-Schlüssel verwendet.

Verwenden Sie die PAM-Nr

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Speichern Sie die Datei, indem Sie auf klicken Strg + O , Dann Strg + X und neu laden SSH-Server.

sudo systemctl ssh neu starten

Nachdem Sie Ihren Server nun erfolgreich so konfiguriert haben, dass er nur SSH-Schlüssel zur Authentifizierung verwendet, wird jeder Versuch, sich ohne einen gültigen RSA-Schlüssel anzumelden, sofort abgelehnt.

So aktivieren Sie passwortlose SSH-Anmeldungen unter Linux – %categories

Häufig gestellte Fragen

F 1. Ich erhalte die Meldung „Verbindung abgelehnt“, wenn ich einen SSH-Schlüssel an meinen Linux-Server sende. Wie kann ich dieses Problem lösen?
Antworten. Stellen Sie sicher, dass der SSH-Server auf dem Remotehost ausgeführt wird. Sie können dies überprüfen, indem Sie sudo systemctl status ssh ausführen. Wenn der Dienst nicht läuft, können Sie ihn mit diesem Befehl starten: sudo systemctl start ssh.

Wenn auf dem Server eine Firewall läuft, stellen Sie sicher, dass Port 22 geöffnet ist, indem Sie sudo ufw state ausführen. Wenn SSH nicht aufgeführt ist, können Sie es aktivieren, indem Sie diesen Befehl ausführen: sudo ufw allow ssh.

F2: Ich erhalte die Fehlermeldung „Berechtigung verweigert (öffentlicher Schlüssel)“, wenn ich versuche, mich anzumelden. Was soll ich machen?
Antworten. Dieser Fehler bedeutet, dass Sie Ihren Server für die Verwendung von Schlüsseln zur Authentifizierung konfiguriert haben, aber immer noch versuchen, sich mit einem Passwort anzumelden. Dies kann entweder an einem fehlenden RSA-Schlüssel oder einer falschen SSH-Einrichtung liegen. Stellen Sie sicher, dass Ihr öffentlicher Schlüssel korrekt auf den Server kopiert wird und dass Sie beim Verbinden den richtigen öffentlichen Schlüssel angeben.

Lesen Sie auch:  So schützen Sie Ihren Server mit Fail2Ban unter Linux

F 3. Ich erhalte die Fehlermeldung „Hostschlüsselüberprüfung fehlgeschlagen“, wenn ich versuche, eine Verbindung herzustellen. Wie kann ich dieses Problem lösen?
Antworten. Dieser Fehler bedeutet, dass sich der Hostschlüssel des SSH-Servers geändert hat. Dies kann passieren, wenn der Server neu installiert wurde. Sie können einen neuen öffentlichen Schlüssel regenerieren und auf den Remote-Host kopieren. Wiederholen Sie die Schritte in diesem Artikel, um den neuen Schlüssel neu zu generieren und dem Server hinzuzufügen.

F4: Ist es möglich, mehrere SSH-Schlüssel auf demselben Remote-Linux-Server zu verwenden?
Antworten. Jawohl. Sie können die Option -f in OpenSSH verwenden, um den genauen Schlüssel anzugeben, den Sie verwenden möchten, um eine Verbindung zu einem Remote-Server herzustellen. Zum Beispiel laufen

 ssh -f ~/.ssh/id_rsa_2 username@remote_ip_address

Dadurch werden Sie mit dem Schlüssel „id_rsa_2“ anstelle des Standardschlüssels „id_rsa“ mit Ihrem Remote-Server verbunden.

Beachten Sie jedoch, dass dieser Befehl nur funktioniert, wenn der Remote-Server Ihren neuen Schlüssel bereits kennt. Zuerst müssen Sie es mit ssh-copy-id auf Ihren Remote-Server kopieren. Ähnlich wie bei den obigen Schritten können Sie dies entweder über die Kennwort- oder RSA-Schlüsselauthentifizierung tun.

F 5. Ich erhalte einen Permission Denied-Fehler, wenn ich versuche, meinen SSH-Schlüssel auf meinen Server zu kopieren.
Antworten. Dieses Problem ist höchstwahrscheinlich auf ein Berechtigungsproblem auf Ihrem Remote-Server zurückzuführen. In den meisten Fällen sollte das Dienstprogramm ssh-copy-id alle Zugriffsprobleme ordnungsgemäß lösen, sobald es eine Verbindung zu Ihrem Remote-Server herstellt. Es gibt jedoch Fälle, in denen diese Funktion hängen bleibt und „id_rsa“ nicht ordnungsgemäß auf Ihren lokalen Computer kopieren kann.

Um dies zu beheben, melden Sie sich beim Remote-Server an und führen Sie es aus

 chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh.

Dadurch werden die richtigen Berechtigungsbits sowohl für den Ordner „.ssh“ als auch für seinen Inhalt gesetzt.

Sie können auch mögen