GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar una contraseña cifrada en Linux Bash Shell Script

Siempre se recomienda utilizar contraseñas cifradas en los scripts de shell bash de Linux. Por lo general, en el script bash shell es posible que necesitemos una contraseña para el usuario remoto mientras nos conectamos al sistema remoto, al usuario ftp y al usuario proxy, etc. En este artículo, cubriremos cómo cifrar la contraseña usando el comando openssl y luego veremos cómo se puede cifrar esta utilizado en el script bash shell.

Cifrar contraseña usando Openssl

Supongamos que queremos conectarnos al sistema remoto a través de ssh usando una contraseña dentro de un script de shell. Para cifrar una contraseña, use el siguiente comando openssl en su sistema Linux.

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

Nota: La cadena seguida del comando de eco '[email protected]#2' es la cadena de contraseña que queremos cifrar y '[email protected]#' es la contraseña que se utiliza durante el cifrado. Si la versión de openssl es 1.1.0 o menos, omita estas dos opciones '-pbkdf2 -iter 100000'

Para guardar la contraseña cifrada en un archivo, use el siguiente comando,

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

Establezca los siguientes permisos en el archivo secret.txt usando el comando chmod,

$ chmod 600 secret.txt

Descifrar contraseña cifrada usando Openssl

Para descifrar la contraseña, ejecute a continuación

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

Nota: Si te has dado cuenta, hemos usado la opción '-d' para descifrar.

Usar contraseña cifrada en el script Bash Shell

Use el siguiente script de shell de muestra que usará una contraseña cifrada mientras se conecta al sistema remoto a través de 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

guarde y cierre el archivo.

Haga que el script sea ejecutable ejecutando debajo del comando,

$ chmod +x sample.sh

Ahora ejecute el script para verificar si el cifrado se usa correctamente para conectarse 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'

Perfecto, la salida anterior confirma que el cifrado se descifra durante la ejecución.

Verifiquemos el contenido del archivo /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] ~]$

El resultado anterior confirma que el script puede capturar el resultado del comando dmesg. Eso es todo del artículo. Espero que tenga una idea de cómo podemos usar una contraseña cifrada dentro de un script de shell.


Linux
  1. Cómo definir y usar funciones en Linux Shell Script

  2. Cómo comparar números y cadenas en Linux Shell Script

  3. Cómo usar la declaración condicional if else en Bash Script

  4. Cambiar la contraseña del sistema Linux en el script bash

  5. Cómo incluir un archivo en un script de shell bash

Cómo usar el comando echo en Bash Scripts en Linux

Cómo instalar y usar ZSH Shell en Linux

Cómo instalar Linux Bash Shell en Windows 10

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo instalar y usar Nu Shell en Linux

¿Cómo usar Linux Bash Shell dentro de Windows 10?