• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shell-Script -> Mount&GPG automatische Passworteingab

Hi,

Ich bin grad dabei beschäftigt, ein verschlüsseltes Dateisystem aufzusetzen.
Es ist /dev/hda3 und wird als loop auf /secure eingebunden, und ist mit AES und einer Stärke von 256Bit verschlüsselt.

Ich habe den Algorithmus-Schlüssel(key) per GPG verschlüsselt (key.gpg) und mounte die Partition per
Code:
mount /dev/hda3 /secure -t reiserfs -o loop,encryption=AES256,gpgkey=.key.gpg
Anschließend verlangt er das Passwort, um die key.gpg zu entschlüsseln.

Mein Script arbeitet auf die selbe Weise, nur dass ich das Passwort aus einer Datei einlesen möchte, um es nicht angeben zu müssen.

Zwei Möglichkeiten, die erfolglos ausprob. habe, sind:
1. mount [...} /.key.gpg > [Passwort|Passwortdatei]
2. mount /dev/hda3[...],encryption=AES256, -p [Passwort|Passwortdatei]

Eins wäre mir die liebste Lösung, weiß aber nicht, wie ich Abfragen abfangen kann ('>'?)
Bei Zwei entsteht das Problem, dass ich das Passwort vorher per GPG erstellen müsste, z.B. $PSWD = gpg -d .key. Doch auch hier fragt er nach einem Passwort, und ich fand in der Man-page keinen Hinweis darauf, wie ich das Passwort beim entschlüsseln mit angeben könnte.


Thx,
Jan
 

TeXpert

Guru
Dir ist schon klar, dass Du damit die Verschlüsselung ad absurdum führst?

ansonsten, könnte das mit einem "expect"-Script zu lösen sein
 
OP
V

violent-world

Member
Naja, nicht ganz absurd :)

Dachte mir, dass ich die key.gpg auf ne Diskette werfe, und Passwort auf dem Rechner belasse.
Aber, thx, werd mich mal mit 'expect'-scripten beschäftigen :)
 
OP
V

violent-world

Member
Hmmm... Ich will da nicht ganz hintersteigen, aber die Beispiele sind auch sehr verwirrend...

Meine Expect-Datei(ex) sieht folgendermaßen aus:
spawn ms
expect "Passwort:"
send "123456789"

Und das Script(ms):
$expect ex
mount /dev/hda3 /secure -t reiserfs -o loop,encryption=AES256,gpgkey=/.key.gpg

irgendwie will das nicht :-(
 
OP
V

violent-world

Member
So, ich habe eine annährend korrekte Lösung, unter http://marc.waeckerlin.org/linux/crypt.php.de gefunden, allerdings musste ich dafür den Beitrag in die fstab schreiben

Dort gibt es eine Zeile:
Code:
mount -p 99 /privat 99< /.key 2> /dev/null; [ $? -ne 0 ]
, bei der mir noch nicht alles klar ist

"mount -p" gibt ja an, dass ein Passwort mit eingegeben wird.
Die Ziffer dahinter steht für die maximale Länge des Passwortes(GPG), welches ja die Mindestlänge des Passwortes haben muss.
das /privat ist die Angabe in der fstab.
Danach hörts dann aber auch auf...
99</.key> dev/null ? heißt das, dass er die 99 Zeichen Passwort in der Datei ./key(ja ist die Datei) sucht? und was ist mit dem Teil hinter dem Semikolon?

Naja, wäre für jede Idee, Link, etc Dankbar

MfG, Jan



EDIT:(PS)

Irgendwie hab ichs mit den sinnvollen Beiträgen *g*
Anstatt irgendwelcher englischen Dokus, hab ich mich wegen eines anderen Problems an die Linuxfibel gewandt.. und hach!
Nochmal zur Kontrolle, obs stimmt
< Liest das Zeugs wirklich aus einer Datei aus
> schreibt es aus irgendeinem Grund auf /Dev/null
und das letzte ist nur eine Kontrollstruktur, dass die Anweisung wirklich 1, und nicht null ist *freu*

Klappt übrigens auch mit
mount -p 9 /dev/hda3 /privat -t reiserfs -o loop,encryption=AES256,gpgkey=/.key.gpg 9< /.key
 
OP
V

violent-world

Member
So, mal wieder bei dem Thema...es geht aber nur um die Theorie.

Soweit ich bisher geschaut habe, verschlüsselt AES durchs Verschieben.
Bedeutet dies, dass bei einem einzigen Defekten Sektor die gesamte Datei unmountbar wird? *schauder*
Weil dann müsst man das Problem ja über ständige Backups, bzw ner hohen RAID lösen müssen.

Wäre außerdem auch dankar über Weblinks, die das theoretische Thema speziell betrachten (Ich finde leider nur AES-Modelle, und wie man damit Mountet)

Thx
 
Oben