Hervorragende Software und praktische Tutorials
Wenn wir uns per SSH remote bei einem Server anmelden, müssen wir in der Regel Benutzernamen und Passwort eingeben. Dies ist für Personen, die das System häufig warten, sehr mühsam. Wie können wir uns ohne Passwort direkt beim Remote-Server anmelden?Linux/Unix-Server? Die SSH-Public-Key-Authentifizierung kann dieses Problem lösen.
Bei der Public-Key-Authentifizierung wird ein Paar verschlüsselter Zeichenfolgen verwendet. Eine Zeichenfolge wird als öffentlicher Schlüssel bezeichnet, der für jedermann sichtbar ist und zur Verschlüsselung verwendet wird. Die andere Zeichenfolge wird als privater Schlüssel bezeichnet, der nur vom Besitzer eingesehen werden kann und zur Entschlüsselung verwendet wird. Mit dem öffentlichen Schlüssel verschlüsselter Geheimtext kann mit dem privaten Schlüssel leicht entschlüsselt werden. Es ist jedoch sehr schwierig, den privaten Schlüssel anhand des öffentlichen Schlüssels zu erraten.
Bevor Sie die Authentifizierung mit öffentlichem Schlüssel verwenden, überprüfen Sie die SSH-Konfigurationsdatei des Servers /etc/ssh/sshd_config
RSAAuthentication ja # RSA-Authentifizierung aktivieren, die Standardeinstellung ist „Ja“. PubkeyAuthentication ja # Authentifizierung mit öffentlichem Schlüssel aktivieren, die Standardeinstellung ist „Ja“.
Wenn bei der Konfiguration keine Probleme auftreten, können Sie mit dem nächsten Schritt fortfahren.
Nehmen wir ein Beispiel. Es gibt beispielsweise zwei Rechner: Client A und Server B. Wenn Sie die SSH-Public-Key-Authentifizierung verwenden möchten, um sich von Rechner A als Client-Benutzer bei Rechner B als Server-Benutzer anzumelden, gehen Sie wie folgt vor:
1. Generieren Sie den öffentlichen Schlüssel und den privaten Schlüssel auf Client A
ssh-keygen -t rsa Erzeugt ein öffentliches/privates RSA-Schlüsselpaar. Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/client/.ssh/id_rsa): #Drücken Sie hier die Eingabetaste. Verzeichnis „/home/client/.ssh“ erstellt. Geben Sie die Passphrase ein (leer, falls keine Passphrase vorhanden ist): #Drücken Sie hier die Eingabetaste. Geben Sie die gleiche Passphrase erneut ein: #Drücken Sie hier die Eingabetaste. Ihre Identifikation wurde in /home/client/.ssh/id_rsa gespeichert. Ihr öffentlicher Schlüssel wurde in /home/client/.ssh/id_rsa.pub gespeichert. Der Schlüsselfingerabdruck lautet: f5:30:ba:10:ee:7a:c6:cf:d8:ec:3f:4c:b3:f1:09:6d client@linuxsong.org
Dadurch werden der öffentliche Schlüssel (/home/client/.ssh/id_rsa.pub) und der private Schlüssel (/home/client/.ssh/id_rsa) des aktuellen Benutzerclients auf diesem Computer generiert.
2. Kopieren Sie die im vorherigen Schritt generierte öffentliche Schlüsseldatei auf Server B. Hängen Sie den Dateiinhalt anschließend an .ssh/authorized_keys im Benutzerverzeichnis des Servers an:
cat id_rsa.pub >> .ssh/autorisierte_Schlüssel
Auf diese Weise muss der Client-Benutzer kein Kennwort eingeben, wenn er sich vom Client aus beim Server-Benutzer anmeldet.
Wenn die Serversicherheit relativ hoch ist, können Sie außerdem festlegen, dass sich Benutzer nur über die Authentifizierung mit öffentlichem Schlüssel anmelden dürfen und die Anmeldung mit Passwörtern untersagt ist. Ändern Sie dazu einfach die Serverkonfigurationsdatei /etc/sshd/sshd_config.
PasswortAuthentifizierung nein
Starten Sie den SSHD-Dienst nach der Änderung neu.
Auf diese Weise wird der Benutzer bei der Anmeldung mit einem Kennwort aufgefordert:
Berechtigung verweigert (öffentlicher Schlüssel, gssapi-mit-Mikrofon)
Verbessern Sie effektiv die Sicherheit des Systems.
Beachten:
Die Berechtigungen des .ssh-Verzeichnisses müssen 0700 sein
Die Dateiberechtigungen für .ssh/authorized_keys müssen 0600 sein
Andernfalls ist die Authentifizierung mit öffentlichem Schlüssel nicht wirksam.