Attualmente sto esaminando la possibilità di utilizzare Yubikey (NEO) per memorizzare le chiavi SSH private dei miei utenti. Cercando su Internet ho trovato diversi posti che spiegano come è possibile generare una chiave master e una sottochiave GPG, importarla su Yubikey, esportare e convertire la chiave pubblica e impostare gpg-agent per connettersi tramite ssh.
Ciò di cui non riesco a trovare nulla è un modo per firmare la chiave e caricarla in gpg-agent usando il metodo di OpenSSH per la firma delle chiavi dell'utente. Per i miei server ho generato una chiave utilizzando ssh-keygen e imposta tale chiave come CA tramite TrustedUserCAKeys in sshd_config. Dopo aver convertito la chiave pubblica GPG in una chiave pubblica OpenSSH, posso firmarla usando ssh-keygen, ma non riesco a far sì che gpg-agent usi la chiave privata in combinazione con la chiave pubblica firmata. So che posso mettere la chiave firmata nel file authorized_keys sul server, ma il vantaggio principale nel mio caso d'uso di utilizzare TrustedUserCAKeys è che allevia l'onere di dover mantenere un file authorized_keys per tutti gli utenti su tutti i server e invece di avere solo per mantenere un elenco revoked_keys. Quindi mi piacerebbe che la chiave firmata fosse posizionata sul lato client piuttosto che sul lato server. Mettendolo sul lato del server, si vanificherebbe lo scopo di firmare la chiave in primo luogo tranne la data di scadenza aggiunta.
Non è necessario che la chiave pubblica firmata sia caricata su Yubikey e / o su gpg-agent, se esiste un modo per avere PuTTY, MobaXterm o qualche altro strumento di connessione SSH di Windows o qualsiasi altro strumento per fare la connessione SSH utilizza la chiave pubblica firmata in contrasto con la chiave pubblica non firmata, sia tramite Yubikey, gpg-agent o caricando il file separatamente, che sarebbe un'ottima soluzione.
È possibile o non esiste alcuna soluzione (su Windows) che supporti l'inclusione di una chiave pubblica firmata con una chiave privata?
Inoltre, ho pensato che se potessi in qualche modo firmare la sottochiave con un'altra chiave PGP e usare quella chiave PGP come ssh CA andrebbe bene, purché sia possibile convertirlo in un privato OpenSSH chiave per firmare anche le normali chiavi SSH.