Sto facendo delle ricerche su questo argomento e posso darti alcuni suggerimenti, ma non ho ancora trovato un modo per farlo funzionare.
Monkeysphere
Monkeysphere sembra un progetto molto interessante, ma non sono stato in grado di compilarlo su Mac OS X senza intasare il mio piccolo spazio libero su disco con MacPorts.
Usando gpgkey2ssh
Il primo modo che ti suggerisco di provare è di generare una voce authorized_keys compatibile dal tuo ID chiave (ad esempio, BFB2E5E3) con:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Qui l'ho aggiunto al mio localhost da quando ho eseguito un server SSH a scopo di test, ma ovviamente dovresti aggiungerlo all'host di destinazione ~/.ssh/authorized_keys
. Quindi devi dire a SSH di utilizzare la parte privata di questa chiave durante l'autenticazione, ma semplicemente esportare una versione corazzata ASCII della coppia di chiavi non funziona:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
Usando gpg-agent
gpg-agent
ha l'opzione --enable-ssh-support
che gli consente di usarlo come sostituto drop-in per il noto ssh-agent
. Ho letto di alcune persone che cercano di aggiungere tramite la ssh-add
loro chiave GPG dopo aver avviato in gpg-agent
questo modo:
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
Ma non penso che funzionerà mai. La manpage di gpg-agent dice:
Le chiavi SSH, che devono essere utilizzate tramite l'agente, devono essere aggiunte inizialmente all'agente gpg tramite l'utility ssh-add. Quando viene aggiunta una chiave, ssh-add chiederà la password del file della chiave fornito e invierà all'agente il materiale della chiave non protetto; questo fa sì che l'agente gpg richieda una passphrase, che deve essere utilizzata per crittografare la chiave appena ricevuta e archiviarla in una directory specifica dell'agente gpg.
Quindi sembra che gpg-agent
dovrebbe essere usato come misura aggiuntiva per proteggere le chiavi SSH con una crittografia GPG.
Conversione di una chiave GPG in OpenSSH
Jérôme Pouiller nel suo blog scrive che l'utility Gpgsm può esportare chiavi e certificati in PCSC12; possono quindi essere utilizzati da OpenSSH:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
Ma non ho trovato un modo per far gpgsm
accettare le mie chiavi di gpg.
Altre cose che puoi provare
SSH ha -I
un'opzione per specificare la libreria condivisa PKCS # 11 da ssh
utilizzare per comunicare con un token PKCS # 11 che fornisce la chiave RSA privata dell'utente.
ssh-keygen
può usare la chiave pubblica o privata RFC4716 / SSH2, le chiavi pubbliche PK PKCS8 e le chiavi pubbliche PEM per generare una chiave privata (o pubblica) compatibile OpenSSH usando le opzioni -i
e -m
.
Non riesco ancora a trovare un modo per mettere tutto insieme.
flag
link sotto la domanda), anziché pubblicare due volte la stessa risposta. Grazie per la risposta dettagliata!