GnuPG es un programa de cifrado de datos y firmas digitales, que sirve para proteger nuestros datos contra posibles ataques de terceras personas y para verificar la identidad de nuestros contactos. Corre el demonio gpg-agent que nos permite guardar las contraseñas en memoria y evitar que estas se muestren por pantalla.
Puede usarse de manera conjunta con otros scripts y comandos que no nos permitan almacenar credenciales cifradas, y también por el propio hecho de organizar la gestión de secretos con una única herramienta.
#Instalación, configuración y uso de GnuPG para consola de comandos #1 - Instalar GnuPG dnf -y install gnupg dnf -y install pinentry #2 - Al final del profile de bash, establecemos estas variables necesarias ".bash_profile": export GPG_TTY=$(tty) export GPG_AGENT_INFO=`gpgconf --list-dirs agent-socket | tr -d '\n' && echo -n ::` #3 - Arrancamos de esta forma manual el agente de gpg, si previamente estaba corriendo lo paramos: gpgconf --kill gpg-agent gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info" #4 - Crearse claves personales de uso de GnuPG (con las opciones por defecto y tu correo vale): gpg --full-generate-key #5 - Comprobar que el comando gpg esta funcionando: echo "frase texto en claro" | gpg --encrypt -r "tú correo" | gpg --decrypt #6 - Exportamos a nuestro entorno de variables, nuestra key para que la coja por defecto. Ejemplo: export GPGKEY=066AACB8 #7 - Ejemplo de workaround en combinación con otro comando para no tener credenciales en texto plano: #Preparamos la contraseña en un archivo así: echo 'g6W8p7N@sm' | gpg --encrypt > pass_cifrada_repositorio_svn.gpg #Ejemplo de comando que usa la contraseña desde el archivo en estado cifrado, para no tener una contraseña en texto plano en un script por ejemplo: svn info --username user_A --password `gpg --decrypt pass_cifrada_repositorio_svn.gpg` https://svn.riouxsvn.com/application_repository # *La primera vez igualmente el demonio de GnuPG te pedirá la passphrase que protege la clave privada, pero la cachea y después ya no hace falta introducirla de nuevo para esa misma sesión) #Cifrar archivos gpg -c file1.txt #Descifrar gpg file1.txt.gpg # *NOTA: Un archivo cifrado con el demonio GnuGPG, esta cifrado con la clave privada del par de claves que has generado en ese equipo, si lo subes a la nube por ejemplo, en el futuro para desencriptarlo necesitarás la clave privada, no te servira la simple passphrase que metes para ejecutar el comando
Para instalar GnuPG en Debian 8.x y derivados, ejecutamos el siguiente comando: sudo apt-get install gnupg gnupg-agent