Quiero generar una RSA
clave GPG
y usarla en el SSH
inicio de sesión. ¿Es esto posible? ¿Si es así, cómo?
editar: ver la respuesta de @ wwerner, no lo intenté, pero parece ser la solución actual (a partir de 2018)
ssh
gnupg
public-key
private-key
destan
fuente
fuente
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
Aquí lo agregué a mi localhost ya que ejecuté un servidor ssh para fines de prueba, pero, por supuesto, debe agregar esto al host de destino
~/.ssh/authorized_keys
. A continuación, debe indicarle a SSH que use la parte privada de esta clave durante la autenticación, pero simplemente no funciona exportar una versión blindada ASCII del par de claves:Usando gpg-agent
gpg-agent
tiene la opción--enable-ssh-support
que le permite usarlo como un reemplazo directo para los conocidosssh-agent
. He leído sobre algunas personas que intentan agregar a través dessh-add
su clave GPG después de iniciar degpg-agent
esta manera:Pero no creo que esto funcione nunca. La página de manual de gpg-agent dice:
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; entonces pueden ser utilizados por OpenSSH:
Pero no he encontrado una manera de
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 quessh
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 usando las opciones-i
y-m
.Aún así no puedo encontrar una manera de poner todo junto.
fuente
gpgkey2ssh
ha sido reemplazado por la--export-ssh-key
versión 2.1.11 (2016-01-26). Me tomó un tiempo darme cuenta de esto. El uso esgpg --export-ssh-key BFB2E5E3
.No, no son intercambiables. Sí, es posible usar claves GPG para la autenticación: el paquete Monkeysphere tiene herramientas para extraer el par de claves RSA sin formato de su certificado GPG.
Su certificado GPG necesitará una subclave con el indicador de capacidad de "autenticación". Para crear una subclave, ejecute una vez:
Ahora agregue sus subclaves de autenticación a ssh-agent :
Algo relevante: este hilo de gnupg-users .
fuente
Con la información de las respuestas a esta pregunta y la ayuda de la lista de correo gnupg-users pude descubrir cómo usar mi clave GPG para la autenticación SSH. Como ya mencionó Claudio Floreani en su respuesta, hay algunos métodos posibles para hacer esto.
He escrito una entrada de blog sobre algunas posibles soluciones: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
Para resumir: o usas GnuPG 2.1, que actualmente está en versión beta. Al usar esta versión, simplemente puede iniciar gpg-agent con la opción --enable-ssh-support y agregar el keygrip para su clave GPG (o subclave) en ~ / .gnupg / sshcontrol.
Cuando usa la versión actual estable de GnuPG (2.0.x), puede usar monkeysphere para agregar su clave a gpg-agent (nuevamente, después de iniciar gpg-agent con la opción --enable-ssh-support).
También es posible usar el llavero GNOME (o incluso el agente ssh regular) con la ayuda de monkeysphere. El único problema en este caso es que tendrá que volver a agregar su clave cuando vuelva a iniciar sesión (en Gnome o XFCE). Para resolver esto, puede exportar manualmente su clave y convertirla.
fuente