GNU/Linux >> Tutoriels Linux >  >> Linux

8 façons de générer un mot de passe aléatoire sous Linux

Découvrez 8 façons différentes de générer un mot de passe aléatoire sous Linux à l'aide de commandes natives Linux ou d'utilitaires tiers.

Dans cet article, nous vous expliquerons différentes manières de générer un mot de passe aléatoire dans le terminal Linux. Peu d'entre eux utilisent des commandes Linux natives et d'autres utilisent des outils ou des utilitaires tiers qui peuvent facilement être installés sur la machine Linux. Ici, nous examinons des commandes natives telles que openssl jj, md5sum , tr , urandom et des outils tiers comme mkpasswd, randpw, pwgen, spw, gpg, xkcdpass, diceware, révélation, keepaasx, passwordmaker.

Ce sont en fait des moyens d'obtenir une chaîne alphanumérique aléatoire qui peut être utilisée comme mot de passe. Des mots de passe aléatoires peuvent être utilisés pour les nouveaux utilisateurs afin qu'il y ait un caractère unique, quelle que soit la taille de votre base d'utilisateurs. Sans plus tarder, passons à ces 15 façons différentes de générer le mot de passe aléatoire sous Linux.

Générer un mot de passe à l'aide de l'utilitaire mkpasswd

mkpasswd est livré avec l'installation de expect package sur les systèmes basés sur RHEL. Sur les systèmes basés sur Debian mkpasswd livré avec le package whois . Essayer d'installer mkpasswd le paquet entraînera une erreur –

Pas de package mkpasswd disponible. sur le système RHEL et E :Impossible de localiser le package mkpasswd basé sur Debian.

Alors installez leurs packages parents comme mentionné ci-dessus et vous êtes prêt à partir.

Exécutez mkpasswd pour obtenir des mots de passe

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

root@kerneltalks# mkpasswd teststring << on Ubuntu
XnlrKxYOJ3vik

La commande se comporte différemment sur différents systèmes, alors travaillez en conséquence. Il existe de nombreux commutateurs qui peuvent être utilisés pour contrôler les paramètres de longueur, etc. Vous pouvez les explorer à partir des pages de manuel.

Générer un mot de passe à l'aide d'OpenSSL

OpenSSL est intégré à presque toutes les distributions Linux. Nous pouvons utiliser sa fonction aléatoire pour générer une chaîne alphanumérique pouvant être utilisée comme mot de passe.

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

Ici, nous utilisons base64 encodage avec fonction aléatoire et dernier chiffre pour l'argument de base64 encodage.

Générer un mot de passe en utilisant urandom

Le fichier de périphérique /dev/urandom est une autre source d'obtention de caractères aléatoires. Nous utilisons tr fonction et découpage de la sortie pour obtenir la chaîne aléatoire à utiliser comme mot de passe.

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

dd commande pour générer un mot de passe

Nous pouvons même utiliser /dev/urandom périphérique avec la commande dd pour obtenir une chaîne de caractères aléatoires.

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

Nous devons transmettre la sortie via base64 encodage pour le rendre lisible par l'homme. Vous pouvez jouer avec la valeur de comptage pour obtenir la longueur souhaitée. Pour une sortie beaucoup plus propre, redirigez std2 vers /dev/null . La commande propre est –

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

Utilisation de md5sum pour générer un mot de passe

Une autre façon d'obtenir un tableau de caractères aléatoires pouvant être utilisés comme mot de passe consiste à calculer la somme de contrôle MD5 ! Si vous savez que la valeur de la somme de contrôle ressemble en effet à des caractères aléatoires regroupés, nous pouvons l'utiliser comme mot de passe. Assurez-vous d'utiliser la source comme quelque chose de variable afin d'obtenir une somme de contrôle différente à chaque fois que vous exécutez la commande. Par exemple date ! La commande date donne toujours la modification de la sortie.

root@kerneltalks # date |md5sum
4d8ce5c42073c7e9ca4aeffd3d157102  -

Ici, nous avons dépassé date sortie de la commande à md5sum et obtenez le hachage de la somme de contrôle ! Vous pouvez utiliser la commande couper pour obtenir la longueur souhaitée de la sortie.

Générer un mot de passe à l'aide de pwgen

pwgen Le package est livré avec des référentiels comme EPEL. pwgen est plus axé sur la génération de mots de passe qui sont prononçables mais pas un mot du dictionnaire ou pas en anglais courant. Vous ne le trouverez peut-être pas dans le référentiel de distribution standard. Installez le package et exécutez pwgen commande. Boum !

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

La liste des mots de passe vous sera présentée sur votre terminal ! Que voulez-vous d'autre ? D'accord. Vous voulez toujours explorer, pwgen est livré avec de nombreuses options personnalisées qui peuvent être référencées pour la page de manuel.

Générer un mot de passe à l'aide de l'outil gpg

GPG est un outil de chiffrement et de signature OpenPGP. La plupart du temps, l'outil gpg est préinstallé (du moins sur mon RHEL7). Mais sinon, vous pouvez chercher gpg ou gpg2 empaquetez et installez-le.

Utilisez la commande ci-dessous pour générer un mot de passe à partir de l'outil gpg.

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

Ici, nous passons générer un commutateur de séquence d'octets aléatoires (--gen-random ) de qualité 1 (premier argument) avec un décompte de 12 (deuxième argument). Commutez --armor garantit que la sortie est base64 codé.

Générer un mot de passe à l'aide de xkcdpass

Le célèbre site d'humour geek xkcd, a publié un article très intéressant sur les mots de passe mémorables mais toujours complexes. Vous pouvez voir ça ici. Donc xkcdpass tool s'est inspiré de ce post et a fait son travail ! C'est un package python et disponible sur le site officiel de python ici

Toutes les instructions d'installation et d'utilisation sont mentionnées sur cette page. Voici les étapes d'installation et les résultats de mon serveur RHEL de test pour votre référence.

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

Exécute maintenant xkcdpass La commande vous donnera un ensemble aléatoire de mots du dictionnaire comme ci-dessous –

root@kerneltalks # xkcdpass
broadside unpadded osmosis statistic cosmetics lugged

Vous pouvez utiliser ces mots comme entrée pour d'autres commandes comme md5sum pour obtenir le mot de passe aléatoire (comme ci-dessous) ou vous pouvez même utiliser la nième lettre de chaque mot pour former votre mot de passe !

root@kerneltalks # xkcdpass |md5sum
45f2ec9b3ca980c7afbd100268c74819  -

root@kerneltalks # xkcdpass |md5sum
ad79546e8350744845c001d8836f2ff2  -

Ou même vous pouvez utiliser tous ces mots ensemble comme un mot de passe aussi long qui est facile à retenir pour un utilisateur et très difficile à déchiffrer à l'aide du programme informatique.

Il existe des outils comme Diceware, KeePassX, Revelation, PasswordMaker pour Linux qui peuvent être envisagés pour créer des mots de passe aléatoires forts.


Linux
  1. 10 façons d'analyser des fichiers binaires sous Linux

  2. 4 façons de générer une clé pré-partagée forte (PSK) sous Linux

  3. Comment générer/chiffrer/déchiffrer des mots de passe aléatoires sous Linux

  4. Comment gérer le mot de passe du compte sous Linux

  5. 10 façons de générer un mot de passe aléatoire sous Linux

Génération de nombres aléatoires à partir du terminal Linux

3 façons de configurer une interface réseau sous Linux

8 façons de générer un mot de passe aléatoire sur Linux Shell

4 façons de créer un nouveau fichier sous Linux

Des moyens simples pour générer un mot de passe aléatoire sur Linux Shell

6 façons de générer un mot de passe sécurisé sur Debian