cifrar claves privadas para dropbear ssh-access

Oct 05 2020

Me gustaría usar dropbearcomo alternativa, ssh-server y -client mínimos. dropbearpermite el uso de claves públicas privadas para el acceso ssh, aunque las claves no son idénticas a las utilizadas por opensshy deben convertirse usando el dropbearconvertcomando -comando (que es fácil de hacer).

El problema que tengo es que dropbearno admite de forma nativa claves privadas cifradas . Pero dejar claves ssh sin cifrar en mi computadora portátil es algo que me gustaría evitar por principio.

Por lo tanto, mi pregunta: ¿alguien tiene buenas ideas sobre cómo sortear ese problema y tener un método (script?) Que:

  • descifra las claves que uso para dropbear (por ejemplo, usar gnupg) y las carga en la memoria,
  • los pasa al dbclient-binary (la dropbear-aplicación-cliente), y
  • inicia la conexión ssh

Además, me gustaría saber si existe una alternativa a la sshopción -config (especialmente las de Host) para dropbear (y, por lo tanto, si es posible crear un archivo de configuración específico del host para dropbear donde pueda especificar, por ejemplo, la IP- dirección, puerto y otros detalles).

Respuestas

3 frostschutz Oct 05 2020 at 00:28

Parece que dbclientestá totalmente dispuesto a leer la clave privada de una canalización con nombre o FIFO.

Entonces, con la sustitución del proceso de bash, puede escribir:

dbclient -i <(cat .ssh/id_dropbear) user@server

Entonces, si tiene un GPG cifrado .ssh/id_dropbear.gpg, puede escribirlo como:

dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server

Y después de ingresar su contraseña de descifrado, dbclientinicie sesión con su clave privada encriptada GPG. Entonces esa parte funciona bien.

El problema principal aquí es que si ya almacenó .ssh/id_dropbearsin cifrar antes de eso, podría recuperarse forense. Para cifrar una clave sobre la marcha dropbearconvert, puede aplicar el mismo principio:

$ dropbearconvert openssh dropbear \
    .ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'

Pero no parece ser demasiado útil en la práctica, ya que dropbearconverttambién ofrece un soporte muy limitado para las claves privadas cifradas de OpenSSH. Para este ejemplo, tuve que crear especialmente una clave OpenSSH que dropbearconvertentienda ...

Desafortunadamente, este truco no parece funcionar en absoluto para el dropbearkeycomando, que por alguna razón insiste en escribir en un archivo temporal y cambiarle el nombre, eludiendo la tubería por completo.

Por lo tanto, parece que no tiene más remedio que generar tmpfsprimero la clave privada (como en /dev/shmo desde un CD en vivo) y cifrarla desde allí.