GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser un mot de passe crypté dans le script Linux Bash Shell

Il est toujours recommandé d'utiliser des mots de passe cryptés dans les scripts shell bash Linux. En règle générale, dans le script shell bash, nous pouvons avoir besoin d'un mot de passe pour l'utilisateur distant lors de la connexion au système distant, à l'utilisateur ftp et à l'utilisateur proxy, etc. Dans cet article, nous expliquerons comment chiffrer le mot de passe à l'aide de la commande openssl, puis verrons comment ce mot de passe chiffré peut utilisé dans le script shell bash.

Crypter le mot de passe à l'aide d'Openssl

Supposons que nous voulions nous connecter au système distant via ssh en utilisant un mot de passe dans un script shell. Pour chiffrer un mot de passe, utilisez la commande openssl ci-dessous dans votre système Linux.

$ echo "[email protected]#2" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 \ 
-salt -pass pass:[email protected]#

Remarque : La chaîne suivie de la commande echo "[email protected]#2" est la chaîne de mot de passe que nous voulons chiffrer et "[email protected]#" est le mot de passe utilisé lors du chiffrement. Si la version d'openssl est 1.1.0 ou moins, ignorez ces deux options '-pbkdf2 -iter 100000'

Pour enregistrer le mot de passe crypté dans un fichier, utilisez la commande suivante,

$ echo "[email protected]#2" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 \
-salt -pass pass:[email protected]# > secret.txt

Définissez les autorisations suivantes sur le fichier secret.txt à l'aide de la commande chmod,

$ chmod 600 secret.txt

Décrypter le mot de passe crypté à l'aide d'Openssl

Pour déchiffrer le mot de passe, exécutez ci-dessous

$ cat secret.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 \
 -salt -pass pass:[email protected]#
[email protected]#2
$

Remarque : Si vous avez bien remarqué, nous avons utilisé l'option '-d' pour déchiffrer.

Utiliser un mot de passe crypté dans le script shell Bash

Utilisez l'exemple de script shell ci-dessous qui utilisera un mot de passe crypté lors de la connexion au système distant via ssh.

$ vi sample.sh
#!/bin/bash
USERNAME=devops
PASSWD=`cat secret.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 \ 
-iter 100000 -salt -pass pass:[email protected]#`

REMOTE=10.20.0.20

sshpass -p $PASSWD ssh -o StrictHostKeyChecking=no [email protected]$REMOTE \
 'dmesg -Tx | grep -i error' > /tmp/a.tmp

enregistrez et fermez le fichier.

Rendez le script exécutable en exécutant sous la commande,

$ chmod +x sample.sh

Exécutez maintenant le script pour vérifier si le chiffrement est utilisé avec succès pour se connecter au système distant.

[[email protected] ~]$ ./sample.sh
Or
[[email protected] ~]$ bash -x sample.sh
+ USERNAME=devops
++ openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt \ 
-pass pass:[email protected]#
++ cat secret.txt
+ [email protected]#2
+ REMOTE=10.20.0.20
+ sshpass -p [email protected]#2 ssh -o StrictHostKeyChecking=no [email protected] \ 
'dmesg -Tx | grep -i error'

Parfait, la sortie ci-dessus confirme que le chiffrement est déchiffré lors de l'exécution.

Vérifions le contenu du fichier /tmp/a.tmp,

[[email protected] ~]$ cat /tmp/a.tmp
kern  :info  : [Thu Jun  3 13:36:51 2021] RAS: Correctable Errors collector\
 initialized.
kern  :err   : [Thu Jun  3 13:36:53 2021] [drm:vmw_host_log [vmwgfx]] *ERROR*\ 
 Failed to send log
kern  :err   : [Thu Jun  3 13:36:53 2021] [drm:vmw_host_log [vmwgfx]] *ERROR* \
 Failed to send log
[[email protected] ~]$

La sortie ci-dessus confirme que le script est capable de capturer la sortie de la commande dmesg. C'est tout de l'article. J'espère que vous avez une idée de la façon dont nous pouvons utiliser un mot de passe crypté dans un script shell.


Linux
  1. Comment définir et utiliser des fonctions dans Linux Shell Script

  2. Comment comparer des nombres et des chaînes dans le script shell Linux

  3. Comment utiliser l'instruction conditionnelle if else dans le script bash

  4. Modification du mot de passe du système Linux dans le script bash

  5. Comment ajouter un utilisateur Unix/linux dans un script bash ?

Comment utiliser la commande echo dans les scripts Bash sous Linux

Comment installer et utiliser ZSH Shell sous Linux

Comment installer Linux Bash Shell sur Windows 10

Comment exécuter un script Shell en tant que service SystemD sous Linux

Comment installer et utiliser Nu Shell sous Linux

Comment utiliser Linux Bash Shell dans Windows 10 ?