Eu quero verificar se a senha do meu user-id
localizado dentro de um arquivo está correta ou não. Eu armazenei minha senha em um arquivo ( /home/user/.gpg_pass.txt
), então eu a uso como:
gpg --verbose --batch --yes --pinentry-mode loopback \
--passphrase-file=/home/user/.gpg_pass.txt
--decrypt <file>
Antes de usar este comando, quero verificar se a senha dentro do arquivo foi inserida corretamente. Eu tentei, o que não ajudou:
cat /home/user/.gpg_pass.txt | gpg --dry-run --passwd <key_id>
De : 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.
Quando eu entro:
$ gpg --dry-run --passwd <key_id>
Duas vezes a janela seguinte aparece, eu insiro a senha (se a senha errada for inserida, ele diz Bad Passphrase (try 2 of 3)
no console da 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> │
└────────────────────────────────────────────────────────────────┘
Em vez de inserir manualmente a senha na GUI dentro do console, ela pode ser canalizada gpg --dry-run --passwd <key_id>
e sua saída pode ser retornada, verificando se a senha fornecida está correta ou não?
Relacionado: https://stackoverflow.com/q/11381123/2402577
Tentar
como a página man também diz que essas são as opções para permitir obter a senha de um arquivo.
Observe que, se você quiser fazer isso de dentro de um script, suponho que ele defina o código de retorno dependendo do resultado, portanto, verifique o código de retorno (
$?
na maioria dos shells, useecho $?
se quiser verificar manualmente).