Kann Bash mir sagen, welcher öffentliche SSH-Schlüssel zur Authentifizierung verwendet wurde?

14

Angenommen, ich möchte meine rootBenutzer verfolgen . Jeder von ihnen hat einen eindeutigen privaten Schlüssel und seine öffentlichen Schlüssel wurden in gespeichert /root/.ssh/authorized_keys.

Wenn sich jeder Benutzer mit seinem eindeutigen Schlüssel anmeldet, wie kann ich in einer BASH-Sitzung feststellen, welcher Schlüssel zur Authentifizierung verwendet wurde? Ich habe versucht, die Umgebungsvariablen beim Anmelden zu untersuchen, kann jedoch nichts feststellen, was meine Sitzung mit meinem öffentlichen Schlüssel in Beziehung setzt.

PP.
quelle
Ein wenig verwandt: Wenn Sie LogLevel VERBOSE in Ihrer (openssh) sshd_config einstellen, wird der Fingerabdruck des Schlüssels protokolliert, der zum Anmelden verwendet wird.
Andol

Antworten:

21

Sie können den Benutzernamen zum öffentlichen Schlüssel ~/.ssh/authorized_keysauf dem Server hinzufügen und als Umgebungswert exportieren:

environment="REALUSER=realusername" ssh-dsa AAA...

Dadurch wird die Umgebungsvariable REALUSER festgelegt, die dann in bash verwendet werden kann. Dies funktioniert nur, wenn PermitUserEnvironmentin auf true gesetzt istsshd_config

Jenny D
quelle
Whoah .. wirklich? Cool! Du meinst in ~/.ssh/authorized_keys? Ich wusste nie darüber Bescheid.
PP.
5
Ja, das ist es. Sie können dort eine Menge interessanter Dinge tun - man sshmehr erfahren Sie unter der Überschrift AUTHORIZED_KEYS FILE FORMAT.
Jenny D
4
Es könnte von der Version abhängen, aber ich musste verwenden man sshd, um den AUTHORIZED_KEYS FILE FORMATAbschnitt zu finden .
Matthew Crumley
2
Beachten Sie, dass das Aktivieren von PermitUserEnvironment einige Sicherheitsrisiken mit sich bringt. Read man sshd
Florin Andrei