Bash può dirmi quale chiave pubblica SSH è stata utilizzata per l'autenticazione?


14

Diciamo che voglio monitorare i miei rootutenti. Ognuno di essi ha una chiave privata univoca e le loro chiavi pubbliche sono state archiviate /root/.ssh/authorized_keys.

Dato che ogni utente accede con la propria chiave univoca come posso sapere all'interno di una sessione BASH quale chiave è stata utilizzata per l'autenticazione? Ho provato a guardare le variabili di ambiente quando eseguo l'accesso, ma non riesco a vedere nulla che colleghi la mia sessione con la mia chiave pubblica.


Leggermente correlato: l'impostazione di LogLevel VERBOSE nel tuo (openssh) sshd_config registrerà l'impronta digitale della chiave utilizzata per accedere.
andol

Risposte:


21

È possibile aggiungere il nome utente alla chiave pubblica nel ~/.ssh/authorized_keysserver ed esportarlo come valore di ambiente:

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

Ciò imposterà la variabile di ambiente REALUSER che sarà quindi disponibile per l'uso in bash. Funzionerà solo se PermitUserEnvironmentè impostato su true insshd_config


Whoah .. davvero? Freddo! Vuoi dire in ~/.ssh/authorized_keys? Non l'ho mai saputo.
PP.

5
Sì, tutto qui. Puoi fare molte cose interessanti lì - man sshti dirò di più sotto la rubrica AUTHORIZED_KEYS FILE FORMAT.
Jenny D,

4
Potrebbe dipendere dalla versione, ma ho dovuto usare man sshdper trovare la AUTHORIZED_KEYS FILE FORMATsezione.
Matthew Crumley,

2
Tenere presente che l'abilitazione di PermitUserEnvironment ha alcune implicazioni per la sicurezza. Leggi man sshd
Florin Andrei il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.