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.