web-dev-qa-db-ja.com

gpgでファイルを非対話的に暗号化するにはどうすればよいですか?

Gpgとファイルに保存されているパスワードを使用してファイルを自動的に暗号化するスクリプトを作成したいと思います。

私はこれを試しました:

gpg -c --passphrase-fd 0 file.txt < pass.txt

Ubuntu 16.04サーバーでこれを実行すると、期待どおりにファイルが暗号化されます。 Ubuntu 18.04デスクトップで実行すると、パスワードマネージャーのモーダルダイアログを使用してパスフレーズの入力を求められます。

ダイアログをスキップして非対話型暗号化を行うにはどうすればよいですか?

回避策として、gpgではなくopensslを使用してこれを行いました。

openssl aes-256-cbc -pass file:pass.txt -e -in file.txt -out file.txt.enc
1
user13097

Lubuntu 18.04 LTSでテストしました。

  • あなたが説明したのと同じように、コマンドラインが失敗します。

  • 次のコマンドラインは私のために働く

    gpg --batch -c --passphrase-file pass.txt file.txt
    

詳細はman gpgをご覧ください

   --passphrase-file file
          Read  the passphrase from file file. Only the first line will be
          read from  file  file.  This  can  only  be  used  if  only  one
          passphrase is supplied. Obviously, a passphrase stored in a file
          is of questionable security if other users can read  this  file.
          Don't  use  this  option  if  you  can avoid it.  Note that this
          passphrase is only used if the  option  --batch  has  also  been
          given.  This is different from GnuPG version 1.x.
1
sudodus