Estoy investigando sobre este tema y puedo darte algunas pistas, pero todavía no he encontrado una manera de hacerlo funcionar.
Monosfera
Monkeysphere parece un proyecto muy interesante, pero no he podido compilarlo en Mac OS X sin obstruir mi pequeño espacio libre en disco con MacPorts.
Usando gpgkey2ssh
La primera forma en que le sugiero que intente es generar una entrada compatible de claves autorizadas a partir de su ID de clave (por ejemplo, BFB2E5E3) con:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Aquí lo agregué a mi localhost ya que ejecuté un servidor ssh con fines de prueba, pero por supuesto, debe agregar esto al host de destino ~/.ssh/authorized_keys
. A continuación, debe decirle a SSH que use la parte privada de esta clave durante la autenticación, pero simplemente no exporta una versión blindada ASCII del par de claves:
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
tiene la opción --enable-ssh-support
que le permite usarlo como un reemplazo directo para lo conocido ssh-agent
. He leído sobre algunas personas que intentan agregar a través de ssh-add
su clave GPG después del lanzamiento de gpg-agent
esta manera:
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
Pero no creo que esto funcione nunca. La página de manual de gpg-agent dice:
Las claves SSH, que se utilizarán a través del agente, deben agregarse al agente gpg inicialmente a través de la utilidad ssh-add. Cuando se agrega una clave, ssh-add solicitará la contraseña del archivo de clave proporcionado y enviará el material de la clave desprotegida al agente; esto hace que el agente gpg solicite una frase de contraseña, que se utilizará para cifrar la clave recién recibida y almacenarla en un directorio específico del agente gpg.
Por lo tanto, parece que gpg-agent
debería usarse como una medida adicional para proteger sus claves SSH con un cifrado GPG.
Convertir una clave GPG a OpenSSH
Jérôme Pouiller en su blog escribe que la utilidad Gpgsm puede exportar claves y certificados en PCSC12; luego pueden ser utilizados por 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
Pero no he encontrado una manera de hacer gpgsm
aceptar mis pares de llaves gpg.
Otras cosas que puedes probar
SSH tiene una -I
opción para especificar la biblioteca compartida PKCS # 11 que ssh
debe usar para comunicarse con un token PKCS # 11 que proporciona la clave RSA privada del usuario.
ssh-keygen
puede usar la clave pública o privada RFC4716 / SSH2, las claves públicas PEM PKCS8 y las claves públicas PEM para generar una clave privada (o pública) compatible con OpenSSH utilizando las opciones -i
y -m
.
Aún así no puedo encontrar una manera de poner todo junto.
flag
enlace debajo de la pregunta), en lugar de publicar la misma respuesta dos veces. ¡Gracias por la respuesta detallada sin embargo!