Editar archivos cifrados en Vim

Quien alguna vez haya trabajado con archivos de texto cifrados sabrá lo tedioso que es escribirlos en texto plano, cifrarlos y luego eliminar el archivo original (usando shred para estar más seguros). Por si esto fuera poco, para modificar su contenido se tiene que descifrar, editar el archivo descifrado, volverlo a cifrar y de nuevo asegurarnos de no dejar rastro del archivo en texto plano.

Por suerte en Vim contamos con el plugin vim-gnupg que nos ahorra todo ese molesto trabajo. Con este plugin podemos editar archivos cifrados de forma transparente, esto significa que al abrirlos se descifran en un buffer del editor y al guardarlos el contenido vuelve a ser cifrado antes de ser escrito al archivo.

Si usas el magnifico gestor de plugins pathogen puedes instalarlo como cualquier otro plugin:

cd .vim/bundle
git clone 'https://github.com/jamessan/vim-gnupg'

De lo contrario se puede instalar manualmente:

mkdir -p .vim/plugin
wget -P .vim/plugin 'https://raw.githubusercontent.com/jamessan/vim-gnupg/master/plugin/gnupg.vim'

También se encuentra disponible en los repositorios de algunas distribuciones, en Gentoo y Funtoo se puede instalar con emerge y en Arch y derivadas se puede obtener desde AUR.

Una vez instalado podemos abrir un archivo cifrado con la extensión .gpg, .pgp o .asc y observar al plugin hacer su magia. Si el archivo existe nos pedirá la passphrase para descifrar el contenido (si no la has ingresado con un gpg-agent); de lo contrario nos abrirá dos buffers, en el primero debemos ingresar los identificadores de las llaves con las que se cifrará el archivo -sólo las personas con las llaves privadas correspondientes podrán leer el contenido- que puede ser el nombre de la llave (ejemplo: Pepito), el email (ejemplo pepito@pepitomail.org) o la llave pública (ejemplo 12345678), uno por línea, y al finalizar guardar y cerrar ese buffer. Ahora podemos editarlo como cualquier otro archivo y dejar que el plugin se encargue del cifrado.

Por último podemos ver las llaves con las que se está cifrando el mensaje con :GPGViewRecipients y modificarlas con :GPGEditRecipients.

Compartir

2 Comentarios

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax