GNU/Linux >> Tutoriales Linux >  >> Linux

8 formas de generar una contraseña aleatoria en Linux

Aprenda 8 formas diferentes de generar una contraseña aleatoria en Linux utilizando comandos nativos de Linux o utilidades de terceros.

En este artículo, lo guiaremos a través de varias formas diferentes de generar una contraseña aleatoria en la terminal de Linux. Pocos de ellos usan comandos nativos de Linux y otros usan herramientas o utilidades de terceros que se pueden instalar fácilmente en la máquina Linux. Aquí estamos viendo comandos nativos como, openssl dd, md5sum , tr , urandom y herramientas de terceros como mkpasswd, randpw, pwgen, spw, gpg, xkcdpass, diceware, revelacion, keepaasx, passwordmaker.

En realidad, estas son formas de obtener una cadena alfanumérica aleatoria que se puede utilizar como contraseña. Las contraseñas aleatorias se pueden usar para nuevos usuarios para que haya unicidad sin importar cuán grande sea su base de usuarios. Sin más demora, pasemos a esas 15 formas diferentes de generar la contraseña aleatoria en Linux.

Generar contraseña usando la utilidad mkpasswd

mkpasswd viene con la instalación de expect paquete en sistemas basados ​​en RHEL. En sistemas basados ​​en Debian mkpasswd viene con el paquete whois . Intentando instalar mkpasswd el paquete dará como resultado un error –

No hay paquete mkpasswd disponible. en el sistema RHEL y E:No se puede localizar el paquete mkpasswd en Debian basado.

Así que instale sus paquetes principales como se mencionó anteriormente y estará listo para comenzar.

Ejecute mkpasswd para obtener contraseñas

root@kerneltalks# mkpasswd << on RHEL
zt*hGW65c

root@kerneltalks# mkpasswd teststring << on Ubuntu
XnlrKxYOJ3vik

El comando se comporta de manera diferente en diferentes sistemas, así que trabaje en consecuencia. Hay muchos interruptores que se pueden usar para controlar los parámetros de longitud, etc. Puede explorarlos desde las páginas man.

Generar contraseña usando OpenSSL

OpenSSL viene integrado con casi todas las distribuciones de Linux. Podemos usar su función aleatoria para generar una cadena alfanumérica que se puede usar como contraseña.

root@kerneltalks # openssl rand -base64 10
nU9LlHO5nsuUvw==

Aquí, estamos usando base64 codificación con función aleatoria y último dígito para el argumento a base64 codificación.

Generar contraseña usando urandom

El archivo del dispositivo /dev/urandom es otra fuente de obtener caracteres aleatorios. Estamos usando tr Función y recorte de salida para obtener la cadena aleatoria para usar como contraseña.

root@kerneltalks # strings /dev/urandom |tr -dc A-Za-z0-9 | head -c20; echo
UiXtr0NAOSIkqtjK4c0X

comando dd para generar contraseña

Incluso podemos usar /dev/urandom dispositivo junto con el comando dd para obtener una cadena de caracteres aleatorios.

root@kerneltalks# dd if=/dev/urandom bs=1 count=15|base64 -w 0
15+0 records in
15+0 records out
15 bytes (15 B) copied, 5.5484e-05 s, 270 kB/s
QMsbe2XbrqAc2NmXp8D0

Necesitamos pasar la salida a través de base64 codificación para que sea legible por humanos. Puede jugar con el valor de conteo para obtener la longitud deseada. Para una salida mucho más limpia, redirija std2 a /dev/null . El comando de limpieza es –

root@kerneltalks # dd if=/dev/urandom bs=1 count=15 2>/dev/null|base64 -w 0
F8c3a4joS+a3BdPN9C++

Usando md5sum para generar contraseña

¡Otra forma de obtener una matriz de caracteres aleatorios que se pueden usar como contraseña es calcular la suma de verificación MD5! Si sabe que el valor de la suma de comprobación parece caracteres aleatorios agrupados, podemos usarlo como contraseña. Asegúrese de usar la fuente como algo variable para que obtenga una suma de verificación diferente cada vez que ejecute el comando. Por ejemplo date ! el comando de fecha siempre produce cambios en la salida.

root@kerneltalks # date |md5sum
4d8ce5c42073c7e9ca4aeffd3d157102  -

Aquí pasamos date salida de comando a md5sum ¡y obtén el hash de la suma de control! Puede usar el comando de corte para obtener la longitud deseada de la salida.

Generar contraseña usando pwgen

pwgen El paquete viene con repositorios como EPEL. pwgen está más enfocado en generar contraseñas que sean pronunciables pero que no sean una palabra del diccionario o que no estén en inglés simple. Es posible que no lo encuentre en el repositorio de distribución estándar. Instale el paquete y ejecute pwgen dominio. ¡Boom!

root@kerneltalks # pwgen
thu8Iox7 ahDeeQu8 Eexoh0ai oD8oozie ooPaeD9t meeNeiW2 Eip6ieph Ooh1tiet
cootad7O Gohci0vo wah9Thoh Ohh3Ziur Ao1thoma ojoo6aeW Oochai4v ialaiLo5
aic2OaDa iexieQu8 Aesoh4Ie Eixou9ph ShiKoh0i uThohth7 taaN3fuu Iege0aeZ
cah3zaiW Eephei0m AhTh8guo xah1Shoo uh8Iengo aifeev4E zoo4ohHa fieDei6c
aorieP7k ahna9AKe uveeX7Hi Ohji5pho AigheV7u Akee9fae aeWeiW4a tiex8Oht

¡Se le presentará la lista de contraseñas en su terminal! ¿Qué más quieres? Está bien. Todavía quieres explorar, pwgen viene con muchas opciones personalizadas que se pueden consultar para la página de manual.

Generar contraseña usando la herramienta gpg

GPG es una herramienta de encriptación y firma OpenPGP. En su mayoría, la herramienta gpg viene preinstalada (al menos está en mi RHEL7). Pero si no, puedes buscar gpg o gpg2 paquete e instalarlo.

Use el siguiente comando para generar una contraseña desde la herramienta gpg.

root@kerneltalks # gpg --gen-random --armor 1 12
mL8i+PKZ3IuN6a7a

Aquí estamos pasando generar un interruptor de secuencia de bytes aleatorios (--gen-random ) de calidad 1 (primer argumento) con una cuenta de 12 (segundo argumento). Cambiar --armor asegura que la salida sea base64 codificado.

Generar contraseña usando xkcdpass

El famoso sitio web de humor geek xkcd publicó una publicación muy interesante sobre contraseñas memorables pero aún complejas. Puedes verlo aquí. Entonces xkcdpass ¡La herramienta se inspiró en esta publicación e hizo su trabajo! Es un paquete de python y está disponible en el sitio web oficial de python aquí

Todas las instrucciones de instalación y uso se mencionan en esa página. Aquí están los pasos de instalación y los resultados de mi servidor RHEL de prueba para su referencia.

root@kerneltalks # wget https://pypi.python.org/packages/b4/d7/3253bd2964390e034cf0bba227db96d94de361454530dc056d8c1c096abc/xkcdpass-1.14.3.tar.gz#md5=5f15d52f1d36207b07391f7a25c7965f
--2018-01-23 19:09:17--  https://pypi.python.org/packages/b4/d7/3253bd2964390e034cf0bba227db96d94de361454530dc056d8c1c096abc/xkcdpass-1.14.3.tar.gz
Resolving pypi.python.org (pypi.python.org)... 151.101.32.223, 2a04:4e42:8::223
Connecting to pypi.python.org (pypi.python.org)|151.101.32.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 871848 (851K) [binary/octet-stream]
Saving to: ‘xkcdpass-1.14.3.tar.gz’

100%[==============================================================================================================================>] 871,848     --.-K/s   in 0.01s

2018-01-23 19:09:17 (63.9 MB/s) - ‘xkcdpass-1.14.3.tar.gz’ saved [871848/871848]


root@kerneltalks # tar -xvf xkcdpass-1.14.3.tar.gz
xkcdpass-1.14.3/
xkcdpass-1.14.3/examples/
xkcdpass-1.14.3/examples/example_import.py
xkcdpass-1.14.3/examples/example_json.py
xkcdpass-1.14.3/examples/example_postprocess.py
xkcdpass-1.14.3/LICENSE.BSD
xkcdpass-1.14.3/MANIFEST.in
xkcdpass-1.14.3/PKG-INFO
xkcdpass-1.14.3/README.rst
xkcdpass-1.14.3/setup.cfg
xkcdpass-1.14.3/setup.py
xkcdpass-1.14.3/tests/
xkcdpass-1.14.3/tests/test_list.txt
xkcdpass-1.14.3/tests/test_xkcdpass.py
xkcdpass-1.14.3/tests/__init__.py
xkcdpass-1.14.3/xkcdpass/
xkcdpass-1.14.3/xkcdpass/static/
xkcdpass-1.14.3/xkcdpass/static/eff-long
xkcdpass-1.14.3/xkcdpass/static/eff-short
xkcdpass-1.14.3/xkcdpass/static/eff-special
xkcdpass-1.14.3/xkcdpass/static/fin-kotus
xkcdpass-1.14.3/xkcdpass/static/ita-wiki
xkcdpass-1.14.3/xkcdpass/static/legacy
xkcdpass-1.14.3/xkcdpass/static/spa-mich
xkcdpass-1.14.3/xkcdpass/xkcd_password.py
xkcdpass-1.14.3/xkcdpass/__init__.py
xkcdpass-1.14.3/xkcdpass.1
xkcdpass-1.14.3/xkcdpass.egg-info/
xkcdpass-1.14.3/xkcdpass.egg-info/dependency_links.txt
xkcdpass-1.14.3/xkcdpass.egg-info/entry_points.txt
xkcdpass-1.14.3/xkcdpass.egg-info/not-zip-safe
xkcdpass-1.14.3/xkcdpass.egg-info/PKG-INFO
xkcdpass-1.14.3/xkcdpass.egg-info/SOURCES.txt
xkcdpass-1.14.3/xkcdpass.egg-info/top_level.txt


root@kerneltalks # cd xkcdpass-1.14.3

root@kerneltalks # python setup.py install
running install
running bdist_egg
running egg_info
writing xkcdpass.egg-info/PKG-INFO
writing top-level names to xkcdpass.egg-info/top_level.txt
writing dependency_links to xkcdpass.egg-info/dependency_links.txt
writing entry points to xkcdpass.egg-info/entry_points.txt
reading manifest file 'xkcdpass.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'xkcdpass.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/xkcdpass
copying xkcdpass/xkcd_password.py -> build/lib/xkcdpass
copying xkcdpass/__init__.py -> build/lib/xkcdpass
creating build/lib/xkcdpass/static
copying xkcdpass/static/eff-long -> build/lib/xkcdpass/static
copying xkcdpass/static/eff-short -> build/lib/xkcdpass/static
copying xkcdpass/static/eff-special -> build/lib/xkcdpass/static
copying xkcdpass/static/fin-kotus -> build/lib/xkcdpass/static
copying xkcdpass/static/ita-wiki -> build/lib/xkcdpass/static
copying xkcdpass/static/legacy -> build/lib/xkcdpass/static
copying xkcdpass/static/spa-mich -> build/lib/xkcdpass/static
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/xkcdpass
copying build/lib/xkcdpass/xkcd_password.py -> build/bdist.linux-x86_64/egg/xkcdpass
copying build/lib/xkcdpass/__init__.py -> build/bdist.linux-x86_64/egg/xkcdpass
creating build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-long -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-short -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-special -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/fin-kotus -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/ita-wiki -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/legacy -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/spa-mich -> build/bdist.linux-x86_64/egg/xkcdpass/static
byte-compiling build/bdist.linux-x86_64/egg/xkcdpass/xkcd_password.py to xkcd_password.pyc
byte-compiling build/bdist.linux-x86_64/egg/xkcdpass/__init__.py to __init__.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
creating dist
creating 'dist/xkcdpass-1.14.3-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing xkcdpass-1.14.3-py2.7.egg
creating /usr/lib/python2.7/site-packages/xkcdpass-1.14.3-py2.7.egg
Extracting xkcdpass-1.14.3-py2.7.egg to /usr/lib/python2.7/site-packages
Adding xkcdpass 1.14.3 to easy-install.pth file
Installing xkcdpass script to /usr/bin

Installed /usr/lib/python2.7/site-packages/xkcdpass-1.14.3-py2.7.egg
Processing dependencies for xkcdpass==1.14.3
Finished processing dependencies for xkcdpass==1.14.3

Ahora ejecutando xkcdpass comando le dará un conjunto aleatorio de palabras del diccionario como a continuación –

root@kerneltalks # xkcdpass
broadside unpadded osmosis statistic cosmetics lugged

Puede usar estas palabras como entrada para otros comandos como md5sum para obtener la contraseña aleatoria (como se muestra a continuación) o incluso puede usar la letra N de cada palabra para formar su contraseña.

root@kerneltalks # xkcdpass |md5sum
45f2ec9b3ca980c7afbd100268c74819  -

root@kerneltalks # xkcdpass |md5sum
ad79546e8350744845c001d8836f2ff2  -

O incluso puede usar todas esas palabras juntas como una contraseña tan larga que es fácil de recordar para un usuario y muy difícil de descifrar usando el programa de computadora.

Hay herramientas como Diceware, KeePassX, Revelation, PasswordMaker para Linux que se pueden considerar para crear contraseñas aleatorias seguras.


Linux
  1. 10 formas de analizar archivos binarios en Linux

  2. 4 formas de generar una clave precompartida sólida (PSK) en Linux

  3. Cómo generar/cifrar/descifrar contraseñas aleatorias en Linux

  4. Cómo administrar la contraseña de la cuenta en Linux

  5. 3 formas de listar usuarios en Linux

Generación de números aleatorios desde la terminal de Linux

3 formas de configurar una interfaz de red en Linux

8 formas de generar una contraseña aleatoria en Linux Shell

4 formas de crear un nuevo archivo en Linux

Maneras simples de generar una contraseña aleatoria en Linux Shell

6 formas de generar una contraseña segura en Debian