Ich möchte aus einem Script mit mail gpg-signierte emails versenden, die mit einer bestimmten Signatur (aus mehreren) versehen sind. Wie macht man so etwas? Vermutlich muß man mail -a verwenden und in Verbindung mit gpg ein entsprechendes Attachment des Textes erzeugen. Al
Hi Al, On Tue, Mar 02, 2004 at 05:53:24PM +0100, Al Bogner wrote:
Ich möchte aus einem Script mit mail gpg-signierte emails versenden, die mit einer bestimmten Signatur (aus mehreren) versehen sind.
Wie macht man so etwas? Vermutlich muß man mail -a verwenden und in Verbindung mit gpg ein entsprechendes Attachment des Textes erzeugen.
#!/bin/bash KEYID="lange keyid" HOME=/home/user PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin export HOME PATH # sicherer Externer Mailtransport: cat /etc/fstab | \ gpg -e -a --recipient sichere.daten@al.com --trusted-key \ "$KEYID" | \ mail -s "Sichere Daten" sicher.daten@al.com # EOF dann musst du nur noch einen entsprechenden publik key für sichere.daten@al.com haben/erzeugen und schon kann es losgehen. Wenn du beim Empfang einfach einen MUA und kein Skript verwenden willst ist vielleicht noch die folgende Procmail Regel hilfreich. :0 * !^Content-Type: message/ * !^Content-Type: multipart/ * !^Content-Type: application/pgp { :0 fBw * ^-----BEGIN PGP MESSAGE----- * ^-----END PGP MESSAGE----- | formail \ -i "Content-Type: application/pgp; format=text; x-action=encrypt" :0 fBw * ^-----BEGIN PGP SIGNED MESSAGE----- * ^-----BEGIN PGP SIGNATURE----- * ^-----END PGP SIGNATURE----- | formail \ -i "Content-Type: application/pgp; format=text; x-action=sign" } Greetings Daniel -- Wenn Träume euch zum Wahnsinn treiben wenn eure Seelen tausend Qualen leiden wenn ihr eure schlimmsten Träume lebt dann ist es Billies Reich vor dem Ihr steht -- frei nach Onkelz
Am Dienstag, 2. März 2004 21:27 schrieb Daniel Lord: Hallo Daniel,
Ich möchte aus einem Script mit mail gpg-signierte emails versenden, die mit einer bestimmten Signatur (aus mehreren) versehen sind.
Wie macht man so etwas? Vermutlich muß man mail -a verwenden und in Verbindung mit gpg ein entsprechendes Attachment des Textes erzeugen.
#!/bin/bash
KEYID="lange keyid" HOME=/home/user PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export HOME PATH
# sicherer Externer Mailtransport: cat /etc/fstab | \ gpg -e -a --recipient sichere.daten@al.com --trusted-key \ "$KEYID" | \ mail -s "Sichere Daten" sicher.daten@al.com
Danke, das hat mir sehr weitergeholfen, aber dein Beispiel signiert nicht, sondern verschlüsselt. Ich habe mir mal testweise und etwas redundant folgendes zum Testen gebaut: SENDER=`whoami`@`uname -n`.domain WARN=user@domain LONGKEYID=`/usr/local/bin/gpg --no-secmem-warning --quiet \ --list-keys --with-colons $SENDER | grep pub | cut -f 5 -d':'` cat /etc/fstab | \ /usr/local/bin/gpg --local-user $SENDER --no-secmem-warning \ --quiet --sign --armor --trusted-key "$LONGKEYID" | \ /usr/bin/mail -s "Sichere Daten" $WARN Jetzt habe ich aber noch ein paar Fragen dazu: Wie frage ich die Domain des Rechners ab? Warum hast du speziell HOME exportiert? Wie kriege ich einen cronjob dazu signierte Mails bei Fehlern zu versenden? Es geht darum, dass ich u.a. (manche) Warnmeldungen signiert versenden möchte. Ein Cronjob sieht zB so aus MAILTO=user@domain 10 * * * * fetchmail -v --all --tracepolls 1>/dev/null
Wenn du beim Empfang einfach einen MUA und kein Skript verwenden willst ist vielleicht noch die folgende Procmail Regel hilfreich.
Ich werde mir das vormerken, weiß aber noch nicht genau, wie ich es lösen will. Eventuell will ich von bestimmten Absendern unsignierte bzw. unverschlüsselte emails verwerfen. Vermutlich soll das aber KMail machen und nicht procmail. Al
Hallo Al, On Wed, Mar 03, 2004 at 07:34:13PM +0100, Al Bogner wrote:
Danke, das hat mir sehr weitergeholfen, aber dein Beispiel signiert nicht, sondern verschlüsselt.
ups... war ich zu "schnell" beim lesen :)
Ich habe mir mal testweise und etwas redundant folgendes zum Testen gebaut:
SENDER=`whoami`@`uname -n`.domain WARN=user@domain LONGKEYID=`/usr/local/bin/gpg --no-secmem-warning --quiet \ --list-keys --with-colons $SENDER | grep pub | cut -f 5 -d':'`
cat /etc/fstab | \ /usr/local/bin/gpg --local-user $SENDER --no-secmem-warning \ --quiet --sign --armor --trusted-key "$LONGKEYID" | \ /usr/bin/mail -s "Sichere Daten" $WARN
Jetzt habe ich aber noch ein paar Fragen dazu:
Wie frage ich die Domain des Rechners ab?
welches Rechners? cat /etc/resolv.conf ? echo §HOSTNAME
Warum hast du speziell HOME exportiert?
Um das Skript auch als cronjob benutzen zu können sonst sucht gpg in / nach seinem Schlüssel.
Wie kriege ich einen cronjob dazu signierte Mails bei Fehlern zu versenden? Es geht darum, dass ich u.a. (manche) Warnmeldungen signiert versenden möchte.
Ein Cronjob sieht zB so aus
MAILTO=user@domain 10 * * * * fetchmail -v --all --tracepolls 1>/dev/null
stderr an stdout weiterleiten und dann wie oben also z.B. 10 * * * * fetchmail -v --all --tracepolls 1>/dev/null 2>1 | \ /usr/local/bin/gpg --local-user .......... Greetings Daniel -- PS: Kann das sein, daß wir hier bald in 'k00wls'-, 'nons'- und sonstigen 'Heulenden Irrwisch'-Kreaturen ersticken? -- Helga Fischer (suse-linux) ...SuSE CD in der Computerbild
Am Mittwoch, 3. März 2004 22:24 schrieb Daniel Lord: Hallo Daniel,
cat /etc/fstab | \ /usr/local/bin/gpg --local-user $SENDER --no-secmem-warning \ --quiet --sign --armor --trusted-key "$LONGKEYID" | \ /usr/bin/mail -s "Sichere Daten" $WARN
Jetzt habe ich aber noch ein paar Fragen dazu:
Wie frage ich die Domain des Rechners ab?
welches Rechners? cat /etc/resolv.conf ? echo §HOSTNAME
Ich wollte hostname -d wissen und -f macht es nochmal einfacher. SENDER=`whoami`@`hostname -f` (vorerst wird mal im internen Netz getestet)
Warum hast du speziell HOME exportiert?
Um das Skript auch als cronjob benutzen zu können sonst sucht gpg in / nach seinem Schlüssel.
Das habe ich nicht kapiert. Wird nicht immer im .gnugp-Verzeichnis des Users gesucht, der das Script ausführt? Anders gesagt, bei meinen kurzen Tests hatte ich ohne Export keine Probleme.
Wie kriege ich einen cronjob dazu signierte Mails bei Fehlern zu versenden? Es geht darum, dass ich u.a. (manche) Warnmeldungen signiert versenden möchte.
Ein Cronjob sieht zB so aus
MAILTO=user@domain 10 * * * * fetchmail -v --all --tracepolls 1>/dev/null
stderr an stdout weiterleiten und dann wie oben also z.B.
10 * * * * fetchmail -v --all --tracepolls 1>/dev/null 2>1 | \ /usr/local/bin/gpg --local-user ..........
Ziemlich umständlich, aber wenn es nicht anders geht. Wie kriege ich die automatische Keyabfrage in den Cronjob? LONGKEYID=`/usr/local/bin/gpg --no-secmem-warning --quiet \ --list-keys --with-colons $SENDER | grep pub | cut -f 5 -d':'` Al
Hallo Al, On Wed, Mar 03, 2004 at 11:29:03PM +0100, Al Bogner wrote:
Am Mittwoch, 3. März 2004 22:24 schrieb Daniel Lord:
Warum hast du speziell HOME exportiert?
Um das Skript auch als cronjob benutzen zu können sonst sucht gpg in / nach seinem Schlüssel.
Das habe ich nicht kapiert.
Wird nicht immer im .gnugp-Verzeichnis des Users gesucht, der das Script ausführt? Anders gesagt, bei meinen kurzen Tests hatte ich ohne Export keine Probleme.
Nur, wenn es in einer $USER crontab steht. Nicht wenn es als root in cron.daily steht und ein $HOME nicht explizit angegeben ist. Kann sein, dass das bei SuSE Standard ist. Auf meinen Systemen funktioniert es nicht ohne Definition von HOME
Wie kriege ich einen cronjob dazu signierte Mails bei Fehlern zu versenden? Es geht darum, dass ich u.a. (manche) Warnmeldungen signiert versenden möchte.
Ein Cronjob sieht zB so aus
MAILTO=user@domain 10 * * * * fetchmail -v --all --tracepolls 1>/dev/null
stderr an stdout weiterleiten und dann wie oben also z.B.
10 * * * * fetchmail -v --all --tracepolls 1>/dev/null 2>1 | \ /usr/local/bin/gpg --local-user ..........
Ziemlich umständlich, aber wenn es nicht anders geht.
es gibt immer mehrere Möglichkeiten
Wie kriege ich die automatische Keyabfrage in den Cronjob?
LONGKEYID=`/usr/local/bin/gpg --no-secmem-warning --quiet \ --list-keys --with-colons $SENDER | grep pub | cut -f 5 -d':'`
entweder (_sehr_ unschön) vor fetchmail schreiben besser aber du packst fetchmail und deine gpg Zeilen in ein eigenes Skript und lässt das per cronjob aufrufen. Greetings Daniel -- Geh nicht nur die glatten Straßen geh Wege die noch niemand ging. Damit du Spuren hinterlässt und nicht nur Staub.
participants (2)
-
Al Bogner
-
Daniel Lord