Encontré en https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html#Unattended-GPG-key-generation para generar claves gpg sin interacción del usuario, pero no lo hace parece funcionar
Mi guión es:
#!/usr/bin/env bash
rm -rf .gnupg
mkdir -m 0700 .gnupg
touch .gnupg/gpg.conf
chmod 600 .gnupg/gpg.conf
tail -n +4 /usr/share/gnupg2/gpg-conf.skel > .gnupg/gpg.conf
touch .gnupg/{pub,sec}ring.gpg
cat >.gnupg/foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 2048
Subkey-Type: RSA
Subkey-Length: 2048
Name-Real: User 1
Name-Comment: User 1
Name-Email: [email protected]
Expire-Date: 0
Passphrase: kljfhslfjkhsaljkhsdflgjkhsd
%pubring foo.pub
%secring foo.sec
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
gpg2 --verbose --batch --gen-key .gnupg/foo
Cuando lo ejecuto, muestra:
=$ ./gen.keys.sh
gpg: Generating a basic OpenPGP key
gpg: no running gpg-agent - starting one
gpg: writing public key to `foo.pub'
gpg: writing secret key to `foo.sec'
Pero luego simplemente se cuelga.
Cuando verifico, mientras tanto, el árbol ps para este usuario, veo:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tstpg 22603 0.0 0.0 24108 5688 pts/9 Ss 14:59 0:00 -bash
tstpg 22624 0.0 0.0 13688 3168 pts/9 S+ 14:59 0:00 \_ bash ./gen.keys.sh
tstpg 22632 0.2 0.0 27428 3676 pts/9 SL+ 14:59 0:00 \_ gpg2 --verbose --batch --gen-key .gnupg/foo
tstpg 22634 0.3 0.0 18072 2884 pts/9 SL+ 14:59 0:00 \_ gpg-agent --server
En ~ / .gnupg / gpg.conf no se menciona al agente, y no tengo idea de lo que está tratando de hacer.
Los archivos foo.pub/foo.sec se generan en el directorio de inicio, pero están vacíos.
¿Qué me estoy perdiendo? ¿Cómo generar la clave sin ningún tipo de interacción del usuario?
Versiones
- gpg (GnuPG) 2.0.26
- libgcrypt 1.6.2
/dev/random
(y, por lo tanto, números muy impredecibles de/dev/urandom
casi todo el tiempo), porque tengo un dispositivo de hardware que usa túneles cuánticos para generar entropía físicamente conectada a mi servidor (ver encima).Descubrí que hay algunos cambios simples que hacen que su script funcione. También he incluido algunas pruebas para que una vez que se cree la clave se pruebe automáticamente.
También eliminé la contraseña para que las pruebas clave puedan automatizarse.
fuente
Lo resolvió como parte de la generación de claves para una instalación automatizada de aplicaciones. Instalar e iniciar el paquete ' rngd ' para generar entrada solucionará su problema. Simple de instalar y usar.
Aquí está el código .
/dev/hwrandom
por defecto, pero modificable) para proporcionar una fuente de entropíafuente
urandom
se utiliza como fuente, lo que se desaconseja. wiki.archlinux.org/index.php/Rng-toolsWarning: Some tutorials available in the Internet, and even early versions of rng-tools package, recommend the following line for systems without TRGN: RNGD_OPTS="-o /dev/random -r /dev/urandom" Of course, this is a really bad idea, since you are simple filling the kernel entropy pool with entropy coming from the kernel itself! If your system does not have an available TRGN consider using haveged instead. See FS#34580 for details.
/dev/hwrandom
de forma predeterminada y es modificable. Ver página del manual.urandom
y que se desaconseja hacerlo.Aquí hay uno que podría usar, pero recomendaría ejecutar este script en una nueva terminal para no afectar la actual. Este script continuará generando entropía al mantener la máquina ocupada y atascada en un bucle infinito hasta que un usuario salga del script. No es necesaria la interacción del usuario hasta después de la generación de claves. Todo lo que hace el script es listar archivos para siempre.
Puede demorar unos minutos (a veces más de 10) para generar dependiendo de su máquina y el tamaño de la clave, pero es bueno no tener que interactuar con ella.
fuente