GnuPG Shell Script - odmítá číst hesla

hlasů
6

Skript níže používá k práci na Mac OS X, ale protože jeho přesunutí na Ubuntu, ale nezdá se, že číst ze souboru hesel vůbec. Dokonce i když jsem jej spustit z příkazového řádku, bez ohledu na to, co dělám, jsem si vyskakovací výzva mě s žádostí o zadání hesla. Vzhledem k tomu, poběží přes cron, nechci, aby se to stalo ... chci, aby to číst hesla ze souboru bez řádku. Na vědomí, že jsem se snaží používat heslo, fd a heslo-souboru, z nichž ani jeden pracoval ...

#!/bin/sh
p=$(<pass.txt)
set -- $p
pass_phrase=$1
destination=/var/www/decrypted
cd /var/sl_bin/
for FILE in *.pgp;
do
    FILENAME=${FILE%.pgp}
    gpg --passphrase $pass_phrase --output $destination/$FILENAME --decrypt $FILE
    rm -f $FILE
done
Položena 27/03/2010 v 19:37
zdroj uživatelem
V jiných jazycích...                            


10 odpovědí

hlasů
5

To funguje:

gpg --no-use-agent --batch --passphrase-file pass.txt --output kkkk.tar.bz2  --decrypt kkk-data.tar.bz2.gpg
Odpovězeno 19/03/2015 v 13:20
zdroj uživatelem

hlasů
3

--passphrase-fileMožnost se zdá být zlomené / neuplatňují. Musel jsem použít --passphrase-fd 0místo toho jako tak:

cat .password | gpg --passphrase-fd 0 --output foo --decrypt foo.gpg
Odpovězeno 01/05/2012 v 00:13
zdroj uživatelem

hlasů
2

Pokud si nepřejete, aby dodávat soubor pomocí standardního vstupu (například proto, že jste to zapojením do jiného příkazem git, která chce dodávat obsah podepsat pomocí standardního vstupu), pak můžete použít jiný deskriptor souboru:

gpg --passphrase-fd 3 <your command here> 3< pass.txt
Odpovězeno 21/08/2014 v 04:17
zdroj uživatelem

hlasů
2

Použijte volbu --no-použití-agent . To nebude požadovat pomocí volby --passphrase .

Odpovězeno 21/03/2013 v 09:43
zdroj uživatelem

hlasů
0

Je třeba použít:

gpg --batch --passphrase-fd 1 --passphrase-file your_password_file -c your_file_to_encript.txt
Odpovězeno 03/02/2013 v 16:36
zdroj uživatelem

hlasů
0

přidat --archiveke čtení hesla od--passphrase-file

Odpovězeno 14/01/2013 v 12:19
zdroj uživatelem

hlasů
0

Začínáš výzvu k zadání hesla, protože máte DISPLAYproměnnou sady (pokud kliknete zrušit skript bude pokračovat v dešifrování souborů). DISPLAYby neměla být nastavena v cron prostředí, takže můžete pravděpodobně ignorovat, ale být jisti, nebo moci vyzkoušet skript z příkazového řádku add

unset DISPLAY

na začátku skriptu, nebo jej spustit před spuštěním.

Také, aby bylo možné použít $(<file)syntaxi je třeba změnit

#!/bin/sh

na

#!/bin/bash

Měli byste se vyhnout použití --passphrasemožnosti, které by mohly vést k odhalení hesla v systému pro více uživatelů. Můžete použít --passphrase-filemísto. Zde je návod, jak bych změnit svůj scénář:

#!/bin/sh
PASSFILE=$(pwd)/pass.txt
destination="/var/www/decrypted"
cd /var/sl_bin/
for FILE in *.pgp;
do
    FILENAME=${FILE%.pgp}
    gpg --passphrase-file $PASSFILE --output "$destination/$FILENAME" --decrypt "$FILE"
    rm -f $FILE
done

Chcete-li uložit umístění souboru s hesly před změnou aktuálního adresáře, zachránil jsem to v PASSFILEproměnné.

Odpovězeno 06/11/2010 v 19:08
zdroj uživatelem

hlasů
0

Dvě řešení (první vyřešit můj problém ;-))

Odpovězeno 02/11/2010 v 10:18
zdroj uživatelem

hlasů
0

použití

#!/bin/bash

nebo

#!/usr/bin/env bash

jako první linie namísto #!/bin/sh

Pokud jde o váš průchod fráze problém, asi byste měli zkusit použít nějaký automatický mechanismus. naleznete v dokumentaci gpg o informace. Nechci používat gpg, ale můžete vyzkoušet gpg-agent.

Odpovězeno 10/04/2010 v 03:10
zdroj uživatelem

hlasů
0

Váš problém je pravděpodobně, že $passphraseje nulová. Ubuntu shje symlinked na dashkteré nerozumí $(<file_name)stejným způsobem, že to dělá Bash (ale nevydává chybu buď).

Můžete změnit svůj shebang na:

#!/bin/bash

nebo použití $(cat pass.txt)

Také, proč ne kombinovat druhý, třetí a čtvrtý řádek ?: pass_phrase=$(<pass.txt)(nebo pass_phrase=($(<pass.txt))pokud se snažíte svléknout všechny ale první „slova“ v souboru).

Váš předchozí otázku

Odpovězeno 10/04/2010 v 02:31
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more