GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare la password crittografata nello script della shell Bash Linux

Si consiglia sempre di utilizzare password crittografate negli script della shell bash di Linux. In genere, nello script della shell bash potremmo aver bisogno della password per l'utente remoto durante la connessione al sistema remoto, all'utente ftp e all'utente proxy ecc. In questo articolo, tratteremo come crittografare la password usando il comando openssl e quindi vedremo come questa password crittografata può essere utilizzato nello script della shell bash.

Crittografa la password utilizzando Openssl

Supponiamo di voler connetterci al sistema remoto su ssh usando la password all'interno di uno script di shell. Per crittografare una password, usa il comando openssl di seguito nel tuo sistema Linux.

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

Nota: Stringa seguita dal comando echo "[email protected]#2" è la stringa della password che vogliamo crittografare e "[email protected]#" è la password utilizzata durante la crittografia. Se la versione di openssl è 1.1.0 o inferiore, salta queste due opzioni '-pbkdf2 -iter 100000'

Per salvare la password crittografata in un file, utilizzare il comando seguente,

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

Imposta le seguenti autorizzazioni sul file secret.txt usando il comando chmod,

$ chmod 600 secret.txt

Decrittografa la password crittografata utilizzando Openssl

Per decrittografare la password, esegui sotto

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

Nota: Se hai notato attentamente, abbiamo utilizzato l'opzione '-d' per decrittografare.

Usa password crittografata nello script Bash Shell

Utilizzare lo script di shell di esempio riportato di seguito che utilizzerà la password crittografata durante la connessione al sistema remoto tramite 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

salva e chiudi il file.

Rendi lo script eseguibile eseguendo sotto comando,

$ chmod +x sample.sh

Ora esegui lo script per verificare se la crittografia è stata utilizzata correttamente per la connessione al sistema remoto.

[[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'

Perfetto, l'output sopra conferma che la crittografia viene decifrata durante l'esecuzione.

Verifichiamo il contenuto del file /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] ~]$

L'output sopra conferma che lo script è in grado di acquisire l'output del comando dmesg. Questo è tutto dall'articolo. Spero che tu abbia un'idea di come possiamo usare la password crittografata all'interno di uno script di shell.


Linux
  1. Come definire e utilizzare le funzioni in Linux Shell Script

  2. Come confrontare numeri e stringhe nello script della shell di Linux

  3. Come utilizzare l'istruzione if else condizionali nello script Bash

  4. Modifica della password di sistema Linux nello script bash

  5. Come includere un file in uno script di shell bash

Come utilizzare il comando echo negli script Bash in Linux

Come installare e utilizzare ZSH Shell in Linux

Come installare Linux Bash Shell su Windows 10

Come eseguire lo script della shell come servizio SystemD in Linux

Come installare e utilizzare Nu Shell su Linux

Come utilizzare Linux Bash Shell in Windows 10?