¿Cómo crear contraseñas seguras en Linux?

¿Cómo crear contraseñas seguras en Linux?

Me pregunto cómo puedo crear contraseñas seguras en Linux (tanto para usuarios normales como administradores) y si existen programas específicos para hacerlo.

Respuesta1

pwgenes uno de los muchos programas para generar contraseñas

Respuesta2

Personalmente, prefiero no usar un generador de contraseñas ya que las contraseñas generadas son muy difíciles de recordar, pero una solución portátil es usar/dev/urandom

La creación de contraseñas aleatorias que no contengan caracteres especiales tiene una longitud de 10 caracteres:

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10` 
dyxJRKldvp

Esto funciona tomando bytes de /dev/urandom, eliminando los que no se ajustan al patrón especificado en el trcomando y limitándolo a 10 caracteres con head.

La creación de contraseñas aleatorias que contienen caracteres especiales tiene una longitud de 10 caracteres:

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
MSF4wj@vP0

Esto utiliza una técnica ligeramente diferente después de treliminar los bytes no deseados, ya que la idea es forzar que tenga al menos un carácter especial. Esto funciona usando el foldcomando para ajustar la línea en grupos de 10 y luego usándolo greppara buscar solo líneas que contengan un carácter especial. headluego busca la primera contraseña que cumpla con los requisitos.

Respuesta3

Escribí este pequeño guión hace unos años y lo he estado usando desde entonces. En todo caso, es un abuso interesante printfy utiliza una característica encantadora de BASH que desafortunadamente rara vez veo en los scripts: typeset.

#!/usr/bin/env bash
# Released into public domain
# Aaron Bockover, 2005
# http://abock.org

typeset -i length; length=$1
typeset -i rounds; rounds=$2
[ $rounds -lt 1 ] && rounds=1
[ $length -lt 1 ] && {
    echo "Usage: $0 <length> [<rounds>]" 2>/dev/null; exit 1;
}
for ((i=0; i < $rounds; i++)); do
    for ((j=0; j < $length; j++)); do
        set=$(($RANDOM % 20))
        if   [ $set -le 6 ];  then o=65; l=26; # 35% uppercase
        elif [ $set -le 13 ]; then o=97; l=26; # 35% lowercase
        elif [ $set -le 17 ]; then o=48; l=10; # 20% numeric
        elif [ $set -le 18 ]; then o=58; l=7;  # 10% symbolic
        elif [ $set -le 19 ]; then o=33; l=15; fi
        ord=$(($o + $RANDOM % $l))
        printf \\$(($ord / 64 * 100 + $ord % 64 / 8 * 10 + $ord % 8))
    done
    echo
done

Respuesta4

Yo también agregaríaKeePassXlo que le brinda la opción de usar la entropía del sistema para generar contraseñas seguras con algunas características interesantes, todas usando GUI. También le brinda la opción de administrar sus contraseñas y guardarlas en un archivo cifrado.

Así es como se ve la interfaz del generador de contraseñas KPX:

ingrese la descripción de la imagen aquí

información relacionada