⚓ Введите кодовую фразу GPG и очистите кэш Вашего агента |

⚓ Введите кодовую фразу GPG и очистите кэш Вашего агента

Мануал
Обычно, когда вы совершаете какое-то действие, которое требует использования вашего ключа GPG, система запрашивает ввод секретной фразы.

К примеру, если вы подписываете коммит в Git, сразу же после запуска команды git commit появится окно для ввода пароля.

🔐Подписание и проверка коммитов Git в командной строке и на GitHub

Однако вы можете настроить систему таким образом, чтобы введённая вами секретная фраза сохранялась некоторое время, избавляя вас от постоянного повторения процедуры.

Вот пример файла конфигурации, который сохраняет пароль на срок одной недели (указано в секундах):

cat ~/.config/gnupg/gpg-agent.conf
default-cache-ttl 604800
max-cache-ttl 604800

Но иногда возникают ситуации, когда ваш скрипт работает некорректно из-за отсутствия заранее введённой секретной фразы.

Скажем, если вы одновременно запускаете несколько параллельных операций, которые требуют подписания коммита Git, и ваш пароль ещё не закеширован.

🕵️ Автоматизация безопасности – Проверка зависимостей с помощью Snyk в GitLab CI/CD

Простое решение проблемы

Есть простая команда, позволяющая принудительно вызвать запрос пароля GPG перед началом основной операции:

echo | gpg --clearsign

При выполнении этой команды программа подпишет пустую строку, выведя результат в терминал.

Если пароль ранее не был введен, система предложит его снова ввести.

Пример результата:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


-----BEGIN PGP SIGNATURE-----
...
[nKzI]
-----END PGP SIGNATURE-----

Чтобы предотвратить появление такого вывода на экране, можно перенаправить результат в /dev/null.

Команда будет выглядеть так:

echo | gpg --clearsign > /dev/null

Это удобно, если вам нужно подготовить среду для последующего использования GPG, но не хочется видеть лишнюю информацию.

Мы столкнулись с подобной ситуацией, когда делали скрипт обновления приложений Docker.

Скрипт создавал подписанные коммиты Git в фоне, и однажды заметил, что выполнение прерывается из-за истечения срока действия моей секретной фразы GPG.

Полезный трюк: очистка кеша паролей

Иногда бывает нужно вручную сбросить кеш паролей агента GPG.

Для этого достаточно выполнить простую команду:

gpg-connect-agent reloadagent /bye
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий