Nie można odszyfrować pliku gpg przy użyciu hasła w systemie Unix

1

Próbuję odszyfrować plik przy użyciu następującego polecenia w wierszu polecenia powłoki unix:

gpg --passphrase-file /path/to/passphrase/file --output /path/to/output/dir/full_db_restore --decrypt full_db_backup_current.tar.gpg

Podczas uruchamiania powyższego polecenia pojawia się następujący błąd:

gpg: 3DES encrypted data
gpg: problem with the agent: No pinentry
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key

Sprawdziłem, czy pinentry jest zainstalowany. Nie jestem pewien, czy problemem jest pinentry. Mam wrażenie, że może to wynikać z błędu „Brak tajnego klucza”. Każda pomoc będzie mile widziana.


źródło
dobre pytanie, ale myślę, że należy je przenieść do superużytkownika, ponieważ nie jest to pytanie związane z programowaniem.
Heisenbug

Odpowiedzi:

2

Znalazłem rozwiązanie tego.

/usr/bin/gpg --no-tty --batch --passphrase-file /path/to/passphrase/file --output   \
/path/to/output/dir/full_db_restore --decrypt full_db_backup_current.tar.gpg

Jedyną różnicą jest to, że dodałem --no-ttyi --batchopcje. Po zalogowaniu się na moim serwerze unix zmieniam użytkowników z użytkownika A na użytkownika B. Zakładam, że ponieważ zmieniłem użytkowników, wystąpił błąd. Nie jestem pewien, czy jest to rozwiązanie zapisu, ponieważ wspomniane powyżej opcje są używane podczas wywoływania polecenia ze skryptu powłoki. Wszelkie dodatkowe informacje będą mile widziane. Z góry dziękuję.

James
źródło
2

Musisz użyć tego polecenia:

    gpg --batch --passphrase-fd 1 --passphrase-file /path/to/passphrase/file  
    --output /path/to/output/dir/full_db_restore full_db_backup_current.tar.gpg

--batch : jest używany w skryptach w trybie nieinteraktywnym (bez pytania);

--passphrase-fd 1 razem z --passphrase-file : aby odczytać hasło z pliku.

Jeśli użyjesz tylko --passphrase-file na * nix, to nie zadziała.

Powodzenia.

Fernando Augusto
źródło