Для цього не існує вбудованого методу, але досить просто створити тест, який нічого не змінює і дозволяє просто перевірити свою парольну фразу.
Ви не вказали, тому я припускаю, що ви використовуєте версію GnuPG, меншу ніж v2, і використовуєте Linux з Bash для вашого інтерпретатора командного рядка.
Я дам команду тут, а нижче я поясни, що робить кожна частина - (примітка: наступне стосується серії GnuPG, версія 1, див. Нижче для серії GnuPG v2)
echo "1234" | gpg --no-use-agent -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
Що спочатку робить, додайте текст для підпису до GnuPG echo "1234" |
- тому що ми насправді нічого не хочемо підписувати, це лише тест, тому ми підпишемо марний текст.
Далі ми говоримо gpg не використовувати ключовий агент з --no-use-agent
; це важливо пізніше, оскільки, залежно від вашого ключового агента, воно не може повернути "0" при успіху, і це все, що ми хочемо зробити - перевірити успіх вашої парольної фрази.
Далі ми просимо gpg помістити підписані дані безпосередньо у /dev/null
файл, тобто ми відкидаємо їх, а не записуємо результат у термінал - ПРИМІТКА: якщо ви не використовуєте якийсь варіант Linux / Unix, цього файлу може не бути. У вікнах вам може знадобитися просто дозволити йому писати підписані дані на екран, просто опустивши -o /dev/null
частину.
Далі ми вказуємо ключ, за допомогою якого ми хочемо провести тест --local-user 012345
. Ви можете використовувати KeyID для максимальної конкретності або використовувати ім’я користувача, залежно від того, що найбільше відповідає вашим потребам.
Далі ми вказуємо -as
, що включає режим виводу ascii, і встановлює контекстний режим для підписання. -
Потім просто говорить GnuPG , щоб отримати дані , які повинні бути підписані від стандартного в, який є першою частиною команди ми дали echo "1234" |
.
І нарешті, ми маємо && echo "A message that indicates success"
- "&&" означає, що якщо попередня команда була успішною, надрукуйте це повідомлення. Це просто додано для ясності, оскільки про успіх наведеної вище команди в іншому випадку не свідчило б взагалі.
Я сподіваюся, це достатньо ясно для вас, щоб ви зрозуміли, що відбувається, і як ви можете використовувати це для тестування, яке ви хочете зробити. Якщо якась частина незрозуміла або ви її не розумієте, я буду радий пояснити. Удачі!
[EDIT] - Якщо ви використовуєте GnuPG v2, вищезазначену команду потрібно буде трохи змінити, наприклад:
echo "1234" | gpg2 --batch --passphrase-fd 1 -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
Причиною є те, що GnuPG v2 очікує отримання парольної фрази через агент, тому ми не можемо відключити використання агента --no-use-agent
та мати бажаний ефект; натомість нам потрібно сказати GnuPG v2, що ми хочемо запустити "пакетний" процес, і отримати парольну фразу з STDIN (стандартна версія), використовуючи цю опцію --passphrase-fd 1
.
gpg --local-user <KEYID> -as
. Це просто дозволяє агенту запитати парольну фразу та повідомляє, чи правильно вона була (Тоді нічого не робить).