Administrador de contraseñas para la línea de comandos de Linux

Estoy buscando un administrador de contraseñas para la línea de comando de Linux (Debian/Ubuntu) para que lo use un departamento de desarrolladores.

Actualmente estamos usando pwman3 y contenido con él, pero queremos migrar a un programa que no cambie el formato de su base de datos con tanta frecuencia de manera incompatible.

Lo que necesito:

  • debe estar disponible como una aplicación de línea de comandos de Linux (Ubuntu LTS, Debian)
  • almacenamiento seguro (es decir, buen cifrado)
  • almacenamiento centralizado posible (un recurso compartido NFS o un repositorio Git sería lo suficientemente bueno), sin nube, por favor
  • la ubicación del archivo de datos debe ser configurable
  • software libre/de código abierto

Opciones preferidas (no obligatorias)

  • buena interfaz gráfica de usuario
  • está contenido en los repositorios de Ubuntu (PPA está bien, .debfuncionaría, sin problemas si viene como está .jaro listo para usar .tar.gz, o fuente si no hay demasiadas dependencias (nos sentimos lo suficientemente aptos para configure && make && check-install;))

Los candidatos intentaron, pero fallaron:

  • pwman3 : Lo usamos ahora con un archivo de base de datos central (compartido a través de NFS), pero el formato de la base de datos se cambió de manera incompatible entre Ubuntu 14.04 y 15.10, por lo que los clientes 14.04 no pueden leer la base de datos almacenada por 15.10.
  • pwsafe : un cliente de línea de comandos para archivos de Password Safe , pero lamentablemente no se ha actualizado desde 2005.
¿Está vibien? Si no, ¿qué características necesita?
@NicolasRaoul: Por ejemplo, almacenamiento encriptado de contraseñas. No estoy seguro de que vi pueda hacer eso. :-) Estamos contentos con pwman3, pero los formatos de base de datos incompatibles (por ejemplo, entre Ubuntu 14.04, 15.10 y 16.04) no funcionan.
Hay tantas herramientas de administración de contraseñas con funciones muy diferentes, que no podemos adivinar cuáles son sus expectativas. Escriba la lista de requisitos, gracias :-) Lea meta.softwarerecs.stackexchange.com/questions/336/… y edite su pregunta. ¡Salud!
Para el mismo problema (recopilación de nombre de usuario/contraseña) hemos usado un archivo de texto sin formato con dos scripts GPG: 1 script solo para "ver" y 1 para editar (agregar/cambiar entradas). El archivo se encriptaría usando las claves públicas de todos los participantes, por lo que cada desarrollador puede descifrarlo con su clave privada. Enfoque fácil, sin cambiar permanentemente los formatos de la base de datos :)
@NicolasRaoul: ¿Mejor? :-)
@Izzy: suena como una buena solución. ¿Podrías hacer que los scripts estén disponibles en alguna parte?
No tengo miedo. Ese fue un cliente para el que trabajé hace varios años y yo no creé los guiones. Pero con el concepto en mente, no debería ser demasiado complicado crearlos (no es que me ofrezca como voluntario ;) Sugerencia rápida: Cifrado y descifrado de documentos - GnuPG y en nuestro sitio hermano ¿Cifrado con múltiples claves diferentes?
¡Gran pregunta ahora!
¿Cumple LastPass con su requisito de apertura? El cliente CLI es de código abierto (de hecho, incluso está empaquetado en Debian ), pero el servicio que utiliza no lo es.
@derobert: ¿Puedo instalar el servidor en las instalaciones?
@MartinSchröder No que yo sepa. Pero ese no era uno de sus requisitos (aunque tal vez debería serlo).
@derobert: la pregunta se actualiza: "Sin nube, por favor"

Respuestas (3)

Kruptos

Yo estaba igualmente insatisfecho con la mayoría de los administradores de contraseñas y quería una alternativa minimalista/de línea de comandos, así que creé Kruptos . Kruptos simplemente cifra y descifra el ~/.kruptos/directorio. Esto proporciona varios beneficios:

  • No intrusivo : almacene información confidencial de la manera que desee
  • Búsqueda flexible : busque/modifique contraseñas con herramientas de línea de comandos
  • Modificable : el código fuente es simple y fácil de cambiar
  • Distribuible : se comprime en un tarball cuando se cifra

Uso

Kruptos tiene 3 piezas de funcionalidad:

  • Inicializar : crear ~/.kruptos/y ~/.kruptos/.phrazeincon contraseña maestra predeterminadapswd
    • La primera línea de .phrazeines la contraseña maestra
  • Cifrar : comprimir, cifrar y luego eliminar ~/.kruptos/lo que crea el tarball
  • Descifrar : descifrar, descomprimir y luego eliminar .kruptos.tar.gz.aeslo que crea el directorio
+===============+===========+
| Functionality | Command   |
+===============+===========+
| Initialize    | kruptos i |
+---------------+-----------+
| Encrypt       | kruptos e |
+---------------+-----------+
| Decrypt       | kruptos   |
+===============+===========+

Código

function kruptos
{
    if [[ $# -eq 1 ]]; then
        DOWHAT="$1"
    else
        DOWHAT="d"
    fi
    if [[ $DOWHAT == "d" ]]; then
        #Decrypt
        pushd . &>/dev/null
        cd ~/
        openssl aes-256-cbc -d  -in .kruptos.tar.gz.aes | tar -xz -f - --strip-components=2 && rm ~/.kruptos.tar.gz.aes
        popd &>/dev/null
    elif [[ $DOWHAT == "e" ]]; then
        #Encrypt
        tar -zcf - ~/.kruptos | openssl aes-256-cbc -out ~/.kruptos.tar.gz.aes -kfile ~/.kruptos/.phrazein && rm -r ~/.kruptos
    elif [[ $DOWHAT == "i" ]]; then
        #Initialize
        mkdir ~/.kruptos
        echo pswd > ~/.kruptos/.phrazein
    else
        echo "$DOWHAT is not an acceptable flag"
    fi
}

Orígenes

Kruptos

Orígenes de Kruptos

Frazeina

ingrese la descripción de la imagen aquí

KeePass

El KeePass está disponible en http://keepass.info/ . Hay un cliente de línea de comandos http://kpcli.sourceforge.net/ o una API de Java para que pueda ejecutar la suya.

Lo estoy usando desde hace años y funciona bien en Mac, Win y Linux.

Pasame

Hice un administrador de contraseñas para la línea de comando. Solo instálalo con:

sudo apt install python3-pip  
sudo pip3 install passme

Almacena la información de "semilla para contraseña" en un archivo de texto y puede administrarlo con git. Crea su contraseña a partir de "semilla para contraseña" y una contraseña maestra que recuerda. También puede crear un archivo html para usar desde su dispositivo móvil.

Para lo que necesitas:

  • Está disponible desde la línea de comandos de Linux.
  • Solo se almacena la "semilla de la contraseña", que no revela su contraseña a menos que se conozca su contraseña maestra.
  • Utiliza solo un único archivo de texto, que es fácilmente manejable con git repo.
  • La ubicación del archivo de datos es configurable.
  • licencia MIT

Para más información: