
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 tr
comando 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 tr
eliminar los bytes no deseados, ya que la idea es forzar que tenga al menos un carácter especial. Esto funciona usando el fold
comando para ajustar la línea en grupos de 10 y luego usándolo grep
para buscar solo líneas que contengan un carácter especial. head
luego 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 printf
y 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: