ファイル内のgpgのパスワードを確認するには?

ファイル内のgpgのパスワードを確認するには?

user-idファイル内のパスワードが正しいことを確認したいです。パスワードをファイル(/home/user/.gpg_pass.txt)に保存してから、次のように使用しました。

gpg --verbose --batch --yes --pinentry-mode loopback \
    --passphrase-file=/home/user/.gpg_pass.txt
    --decrypt <file>

このコマンドを使用する前に、ファイルのパスワードが正しく入力されていることを確認したいと思います。私はこれを試しましたが役に立ちませんでした:

cat /home/user/.gpg_pass.txt | gpg --dry-run --passwd <key_id>


からmangpg

--passwd user-id
       Change the passphrase of the secret key belonging to the certificate 
       specified as user-id.  This is a shortcut for the sub-command passwd  
       of  the edit  key  menu.  When using together with the option --dry-run 
       this will not actually change the passphrase but check that the current 
       passphrase is correct.

私が入力したとき:

$ gpg --dry-run --passwd <key_id>

パスワードを入力すると、次のウィンドウが2回表示されます。 (間違ったパスワードを入力すると、 Bad Passphrase (try 2 of 3)GUIコンソールに表示されます。)

 ┌────────────────────────────────────────────────────────────────┐
 │ Please enter the passphrase to unlock the OpenPGP secret key:  │
 │ "Alper <[email protected]>"                                      │
 │ 3072-bit RSA key, ID 86B9E988681A51D1,                         │
 │ created 2021-12-15.                                            │
 │                                                                │
 │                                                                │
 │ Passphrase: __________________________________________________ │
 │                                                                │
 │         <OK>                                    <Cancel>       │
 └────────────────────────────────────────────────────────────────┘

コンソール内のGUIにパスワードを手動で入力するのではなく、パイプで接続してgpg --dry-run --passwd <key_id>出力を返すことで、指定されたパスワードが正しいことを確認できます。


関連:https://stackoverflow.com/q/11381123/2402577

ベストアンサー1

努力する

gpg --batch --pinentry-mode loopback --passphrase-file=/home/user/.gpg_pass.txt --dry-run --passwd your-keyid

マニュアルページにも示すように、これはファイルからパスワードをインポートするオプションです。

スクリプト内でこれを行うには、結果に応じて戻りコードを設定すると想定しているため、戻りコードを確認してください(手動で確認したい場合はほとんどのシェル$?で)。echo $?

おすすめ記事