我想检查我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>
来自:man
_gpg
--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>
两次以下窗口显示我输入密码,(如果输入错误的密码,它会 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> │
└────────────────────────────────────────────────────────────────┘
与其在控制台内手动输入密码短语,不如将其作为管道输入,gpg --dry-run --passwd <key_id>
并且可以返回其输出,验证给定密码短语是否正确?
尝试
正如手册页所说,这些是允许从文件中获取密码的选项。
请注意,如果您想从脚本中执行此操作,我假设它会根据结果设置返回码,因此请检查返回码(
$?
在大多数 shell 中,echo $?
如果您想手动检查,请使用)。