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: