Búsqueda de sitios web

Cómo generar contraseñas aleatorias desde la línea de comandos de Linux


¿Necesitas una contraseña segura y aleatoria? Linux hace que sea increíblemente fácil generar uno, no se requiere un administrador de contraseñas.

A menudo necesito contraseñas aleatorias. En su mayoría, esas contraseñas se utilizan para la creación de cuentas de usuario en aplicaciones y servicios, momento en el que usaré mi administrador de contraseñas que incluye un muy buen generador de contraseñas aleatorias.

Pero otras veces, es posible que necesite una contraseña temporal que no requiera guardarla en un administrador de contraseñas. O tal vez sea una contraseña permanente, pero he iniciado sesión en mi escritorio desde una máquina remota y la línea de comandos es la única herramienta que tengo.

Independientemente de por qué, hay un simple comando de Linux que hace que sea muy fácil generar contraseñas aleatorias. Esa herramienta se llama pwgen, y así es como se instala y usa.

Cómo instalar pwgen

Lo que necesitarás: Lo único que necesitarás para esto es una distribución de Linux y un usuario con privilegios sudo.

1. Instale pwgen en distribuciones basadas en Debian o Ubuntu

Para instalar pwgen en distribuciones basadas en Debian o Ubuntu, abra una ventana de terminal y ejecute el comando:

sudo apt-get install pwgen -y

2. Cómo instalar pwgen en distribuciones basadas en Fedora

Para instalar pwgen en distribuciones basadas en Fedora, abra una ventana de terminal y ejecute el comando:

sudo dnf install pwgen

3. Cómo instalar pwgen en distribuciones basadas en Arch

Para instalar pwgen en distribuciones basadas en Arch, abra una ventana de terminal y ejecute el comando:

sudo pacman -S pwgen

4. Cómo instalar pwgen en distribuciones basadas en SUSE

Para instalar pwgen en distribuciones basadas en SUSE, abra una ventana de terminal y ejecute el comando:

sudo zypper install pwgen

En este punto, la aplicación debería estar lista para funcionar.

Cómo usar pwgen

1. Genera una sola contraseña

Supongamos que desea generar una sola contraseña de 16 caracteres. Para eso, el comando sería:

pwgen 16 1

2. Genera tres contraseñas

Es posible que deba crear 3 contraseñas aleatorias, cada una de las cuales tiene 16 caracteres. Para eso, el comando sería:

pwgen 16 3

3. Genera una lista de contraseñas

Es posible que desee una lista de contraseñas, cada una de las cuales tiene 16 caracteres. Para ello, ejecute el comando:

pwgen 16

Como puede ver, la primera opción le dice a pwgen qué tan larga debe ser la contraseña, y la segunda opción le dice a pwgen cuántas contraseñas generar.

También puede utilizar una serie de opciones con pwgen. Esas opciones son:

  • -c o --capitalize - Incluye al menos una letra mayúscula.
  • -A o --no-mayúsculas: no incluya letras mayúsculas.
  • -n o --numerals: incluye al menos un número.
  • -0 o --no-numerals: no incluye números.
  • -y o --symbols - Incluyen al menos un símbolo especial.
  • -r o --remove-chars= - Eliminar caracteres del conjunto de caracteres
  • -s o --secure - Genera contraseñas completamente aleatorias
  • -B o --ambiguous: no incluye caracteres ambiguos.
  • -H o --sha1=ruta/a/archivo[#seed] - Utilice el hash sha1 del archivo dado como un generador aleatorio (no tan)
  • -C - Imprime las contraseñas generadas en columnas
  • -1 - No imprimas las contraseñas generadas en columnas
  • -v o --sin vocales

Una cosa a tener en cuenta es que pwgen solía tener una opción --no-space, lo que permitía usar expresiones regulares en los scripts. Desde entonces, esa opción ha quedado obsoleta, por lo que escribir scripts con el comando pwgen es un poco más complejo de lo que era antes. Lo que antes se podía hacer con unas pocas líneas, ahora requiere scripts mucho más largos y se vería así:

#!/bin/bash

# Longitud de la contraseña
PASSWORD_LENGTH=16

# Número de contraseñas a generar
NUM_PASSWORDS=5

# Caracteres a incluir (minúsculas, mayúsculas, dígitos, símbolos)
USE_LOWERCASE=verdadero USE_UPPERCASE=verdadero USE_DIGITS=verdadero USE_SYMBOLS=verdadero

# Función para generar una contraseña
generate_password() {
local characters=""
if $USE_LOWERCASE; then characters+="abcdefghijklmnopqrstuvwxyz"; fi
if $USE_UPPERCASE; then characters+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; fi
if $USE_DIGITS; then characters+="0123456789"; fi
if $USE_SYMBOLS; then characters+="!@#$%^&*()_+=-'~[]{}|; ':\",./<>?"; Fi

local password=""
for i in $ (seq 1 $PASSWORD_LENGTH); do
local rand=$ (( RANDOM % $ {#characters} )) # Obtener índice aleatorio
local char="$ {characters:$rand:1}" # Obtener carácter en ese índice
password+="$char" # Agregar a la contraseña

hecho echo "$password"
}

# Generar contraseñas e imprimirlas
echo "Contraseñas Generadas:"
for i in $ (seq 1 $NUM_PASSWORDS); do
password=$ (generate_password)
echo "$password"
done

# Ejemplo: Almacenar contraseñas en un array (opcional)
password_array=()
for i in $ (seq 1 $NUM_PASSWORDS); do
password=$ (generate_password) # Regenerar contraseñas. Si desea usar el primer
password_array+=("$password")
hecho

# Imprime cualquier error al generar y almacenar contraseñas
si [ $? -ne 0 ]; luego
echo "Ocurrió un error"
fi

# (Extra) Ejemplo de cómo trabajar con las contraseñas guardadas en el array
echo "Stored in password_array:"
for password in "$ {password_array[@]}"; do
echo "$password"
done

Disfruta de esas contraseñas aleatorias.