Bash Script OpenSSL Verschlüsselung

Zugangsdaten in einem Bash Script aus einer verschlüsselten Datei
sourcen.

Erstellen der zu verschlüsselnden Datei zum Beispiel ein Login mit User und Passwort.

:~$ vim .passfile.txt

USER=testuser
PASS="streng geheim"

:~$ file .passfile.txt
.passfile.txt: ASCII text

Kontrolle im Hex-Editor in gekürzter Ausgabe. Die Daten sind im Klartext abgelegt.

:~$ hexedit .passfile.txt
00000000   55 53 45 52    72 0A 50 41  USER=testuser.PA
00000010   53 53 3D 22    65 68 65 69  SS="streng gehei
00000020   6D 22 0A                    m".

.passfile.txt mit Hilfe von OpenSSL symetrisch verschlüsseln.

:~$ openssl enc -aes-256-cbc -salt -in .passfile.txt -out .passfile.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

:~$ file .passfile.enc
.passfile.enc: data

Kontrolle im Hex-Editor in gekürzter Ausgabe. Die Daten sind verschlüsselt abgelegt.

:~$ hexedit .passfile.enc
00000000   53 61 6C 74    A7 07 42 24  Salted__V.....B$
00000010   96 50 43 A5    84 0D 8D 06  .PC..Z...b......
00000020   A1 5F 9A 2F    98 8D 9A 5F  ._./.....,....._
00000030   25 4B 3D 8F    E6 F8 55 59  %K=......>....UY

Bash-Script Beispiel zum entschlüsseln, sourcen und ausgeben der „Login“ Daten. Mittels unset werden die Variablen wieder entfernt.

:~$ vim login.sh

#!/bin/bash

source <(openssl enc -aes-256-cbc -d -in .passfile.enc)

echo "Ihr Login user: $USER pass: $PASS"

unset -v USER
unset -v PASS

echo "Nochmalige Ausgabe vom Login user: $USER pass: $PASS"

exit 0

Beim Ausführen des Scriptes wird nach dem Passwort von der Verschlüsselung gefragt. Nach Eingabe dessen folgt die Ausgabe des Scriptes.

:~$ chmod +x login.sh

:~$ ./login.sh
enter aes-256-cbc decryption password:
Ihr Login user: testuser pass: streng geheim
Nochmalige Ausgabe vom Login user:  pass: