Sto cercando di implementare i controlli di accesso tramite le chiavi ssh pubbliche firmate da CA, come descritto nell'articolo Accesso scalabile e sicuro con SSH .
Sto cercando di capire come gestirà il nostro team di sicurezza sul lato CA. Una cosa che vorrei essere in grado di fare è, dopo aver firmato una chiave, vorrei "interrogare" quella chiave per ottenere informazioni a riguardo. In particolare, per una determinata chiave, mi piacerebbe sapere:
- Con quale CA è stato firmato (ad esempio, posso estrarre alcune informazioni sul certificato utilizzato per firmare questa chiave)?
- Quale identità è stata assegnata a questa chiave (
-I
flag a ssh-keygen) - Quali sono le principali consentite da questa chiave (
-n
ssh-keygen flag) - Qual è il tempo di validità della firma (
-V
) - Qual è il numero di serie di questa firma (
-z
) - Quali opzioni sono state assegnate a questa chiave firmata (
-O
)
Chiaramente, sshd deve necessariamente decodificare tutti quegli attributi quando viene presentata la chiave. C'è un modo programmatico per estrarre tali informazioni? Sto pensando in termini di controlli di sanità, auditing e reporting sul lato gestione del team di sicurezza.
Modifica: mi sono reso conto che stavo usando una terminologia errata in questo post. Dalla pagina di manuale ssh-keygen (emphasis mine):
ssh-keygen supports signing of keys to produce certificates that may be used for user or host authentication. Certificates consist of a public key, some identity information, zero or more principal (user or host) names and a set of options...
Come Abraham menziona sotto, le chiavi sono in realtà solo le chiavi. Una volta che una chiave è stata firmata da una CA, non è più solo una chiave, ma un certificato .
Infine, in una straordinaria visualizzazione di Errore RTFM , ssh-keygen -L -f certificate
fa esattamente ciò di cui ho bisogno.