SSH-Server prüft öffentliche Schlüssel aus einer anderen Quelle

SSH-Server prüft öffentliche Schlüssel aus einer anderen Quelle

Bei einer SSH-Verbindung mit Schlüsselauthentifizierung sendet der Benutzer die ID des öffentlichen Schlüssels, den er verwenden möchte. Anschließend sucht der Server in der Datei authorized_keys nach dem öffentlichen Schlüssel.

Ich möchte, dass der Server nicht in der Datei „authorized_keys“ nach dieser ID sucht, sondern den Benutzernamen verwendet, um den Schlüssel aus einer anderen Quelle abzurufen (z. B. einer Datenbank, einer anderen Datei, einem Remote-Server usw.).

Ist das möglich?

Antwort1

Um es zu ändernDateipfadkönnen Sie denAutorisierteSchlüsseldateiOption in sshd_config (vorausgesetzt, der Server führt OpenSSH aus). Sie können mehrere Pfade angeben, entweder relativ zum Home-Verzeichnis des Benutzers oder absolute Pfade mit %uErweiterung zum Benutzernamen.

Um beispielsweise den Standardspeicherort authorized_keys beizubehalten undhinzufügeneine Datei in /etc:

AuthorizedKeysFile  .ssh/authorized_keys  /etc/ssh/users/%u.txt

Um einenexterner Befehl, wenn der Server OpenSSH 6.2 oder höher verwendet, können Sie angebenAutorisierterSchlüsselbefehlin der sshd_config-Datei des Servers, die auf ein benutzerdefiniertes Programm oder Skript verweist.

Das Programm wird bei jeder Anmeldung ausgeführt, erhält einen Benutzernamen als Befehlszeilenparameter und muss über stdout eine Liste der Schlüssel für diesen Benutzer ausgeben (im selben Format wie authorized_keys).

Wenn Sie beispielsweise LDAP verwenden,SSSDDer LDAP-Client enthält bereits ein Tool sss_ssh_authorizedkeyszum Abrufen von Schlüsseln aus dem sshPublicKey-Attribut des Benutzers.

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody

verwandte Informationen