Ich habe hier ein Script laufen, dass unter anderem verschiedene verschlüsselte Verzeichnisse mit encfs mountet, so dass ich bei jedem encfs-Mount das passende Passwort eingeben muss. Die Passwörter selbst möchte ich natürlich nicht lesbar irgendwo ablegen, weder im Script selbst noch irgendwo sonst.
Die Idee ist nun, die Passwörter mit einem "Masterpasswort" verschüsselt (z.B. mit GPG) in einer Datei abzulegen und auszulesen, so dass man bei Scriptaufruf halt nur noch ein Passwort eingibt und nicht X verschiedene.
Gibt es da wohl schon etwas Fertiges oder hat jemand schon einmal etwas Ähnliches gebaut?
Scripting mit Masterpasswort statt vieler einzelner Passwörter
Re: Scripting mit Masterpasswort statt vieler einzelner Passwörter
Sosnst
In die Variable Teststring muss dasda rein:
Die Passwörter der encfs-Volumes verschlüsselst du mit
In meinem Fall habe ich das Masterpasswort password genommen und die volumes haben die passwörter pw1 und pw2.
Eventuell willst du die beiden Tests vor dem eigentlichen Script einbauen (Falls du dir nicht ganz sicher bist, dass du auch wirklich in der bash sitzt).
Edit: camellia durch aes 192 ersetzt. Das ist auch der default in encfs
Code: Alles auswählen
#!/bin/bash
teststring=U2FsdGVkX18ZsjJolMvfFwTCEk9l3qtnEiZuOMDJVaY=
export pw=wrong
pw1=U2FsdGVkX1/pCgfGSBXMJDkxNv4uU7MsorfsxyNClwI=
pw2=U2FsdGVkX1+b7oT8QOqb7elNiKhFXdZ35yT29Wu9rhI=
pw3=U2FsdGVkX1/JnKtOEquax83EcTeVAmQa5R1D8Ws5g2Q=
while [ "$(echo U2FsdGVkX18ZsjJolMvfFwTCEk9l3qtnEiZuOMDJVaY= | openssl enc -aes-192-cbc -pass env:pw -pbkdf2 -base64 -d 2> /dev/null)" != plain ];
do echo -n "Password: "
read -s pw
echo
export pw
done
echo $pw1 | openssl enc -aes-192-cbc -pass env:pw -pbkdf2 -base64 -d | enfcs -S /home/jc/encrypted1 /tmp/decrypted1
echo $pw2 | openssl enc -aes-192-cbc -pass env:pw -pbkdf2 -base64 -d | enfcs -S /home/jc/encrypted2 /tmp/decrypted2
echo $pw3 | openssl enc -aes-192-cbc -pass env:pw -pbkdf2 -base64 -d | enfcs -S /home/jc/encrypted3 /tmp/decrypted3
Code: Alles auswählen
echo plain | openssl enc -aes-192-cbc -pbkdf2 -base64
Code: Alles auswählen
echo passwort | openssl enc -aes-192-cbc -pbkdf2 -base64
Eventuell willst du die beiden Tests vor dem eigentlichen Script einbauen (Falls du dir nicht ganz sicher bist, dass du auch wirklich in der bash sitzt).
Code: Alles auswählen
#Test ob read da ist.
if ! builtin read 2> /dev/null
then echo Kein read support
exit 1
fi
#Eigentlich unnötig aber ich will nicht, dass die verschlüsselten Passwörter in ps auftauchen.
if ! builtin echo 2> /dev/null
then echo Keine sichere shell.
exit 1
fi
rot: Moderator wanne spricht, default: User wanne spricht.
- seep
- Beiträge: 544
- Registriert: 31.10.2004 14:21:08
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: HSK
Re: Scripting mit Masterpasswort statt vieler einzelner Passwörter
Cool, interessanter Ansatz.
Meine Idee ging bisher in die Richtung CSV-Datei mit "Source, Destination, Password" in einer Datei, die per gpg verschlüsselt ist, per gpg auf STDOUT entschlüsseln, komplett auslesen bzw. zeilenweise abarbeiten und Verzeichnisse passend mounten.
Meine Idee ging bisher in die Richtung CSV-Datei mit "Source, Destination, Password" in einer Datei, die per gpg verschlüsselt ist, per gpg auf STDOUT entschlüsseln, komplett auslesen bzw. zeilenweise abarbeiten und Verzeichnisse passend mounten.