К примеру, если вы подписываете коммит в Git, сразу же после запуска команды git commit появится окно для ввода пароля.
🔐Подписание и проверка коммитов Git в командной строке и на GitHub
Однако вы можете настроить систему таким образом, чтобы введённая вами секретная фраза сохранялась некоторое время, избавляя вас от постоянного повторения процедуры.
Вот пример файла конфигурации, который сохраняет пароль на срок одной недели (указано в секундах):
Но иногда возникают ситуации, когда ваш скрипт работает некорректно из-за отсутствия заранее введённой секретной фразы.
Скажем, если вы одновременно запускаете несколько параллельных операций, которые требуют подписания коммита Git, и ваш пароль ещё не закеширован.
🕵️ Автоматизация безопасности – Проверка зависимостей с помощью Snyk в GitLab CI/CD
Простое решение проблемы
Есть простая команда, позволяющая принудительно вызвать запрос пароля GPG перед началом основной операции:
При выполнении этой команды программа подпишет пустую строку, выведя результат в терминал.
Если пароль ранее не был введен, система предложит его снова ввести.
Пример результата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
-----BEGIN PGP SIGNATURE-----
...
[nKzI]
-----END PGP SIGNATURE-----
Чтобы предотвратить появление такого вывода на экране, можно перенаправить результат в /dev/null.
Команда будет выглядеть так:
Это удобно, если вам нужно подготовить среду для последующего использования GPG, но не хочется видеть лишнюю информацию.
Мы столкнулись с подобной ситуацией, когда делали скрипт обновления приложений Docker.
Скрипт создавал подписанные коммиты Git в фоне, и однажды заметил, что выполнение прерывается из-за истечения срока действия моей секретной фразы GPG.
Полезный трюк: очистка кеша паролей
Иногда бывает нужно вручную сбросить кеш паролей агента GPG.
Для этого достаточно выполнить простую команду:
Она мгновенно очистит хранилище секретных фраз.
см. также:
- ⚓ Как защитить репозиторий Git с помощью подписанных коммитов и меток
- 🦊 Как создавать резервные копии git-репозиториев с помощью gickup
- 🦊 Как создавать зашифрованные git-репозитории с помощью git-remote-gcrypt
- 🦊 SSH или HTTPS для Git: что из них использовать?
- ⚓ Обнаружение вторжения с помощью git







