Gpg-агент - це програма, яка працює у фоновому режимі ( демон ) і зберігає в пам'яті секретні ключі GPG. Коли процес GPG потребує ключа, він зв'язується із запущеною програмою gpg-агент через сокет і запитує ключ. Якщо процес агента має ключ, він надає йому gpg. Якщо цього не відбувається, він намагається завантажити зашифрований ключ із вашої брелки, і запропонує вам ввести парольну фразу ключа. Як тільки агент отримав розшифрований ключ, він передає його в gpg-процес. Окрім ключів GPG, Gpg-агент може аналогічно зберігати SSH-ключі та надавати їх процесам SSH, як ssh-agent
програма, яка постачається із SSH.
Основний сенс використання ключового агента полягає в тому, що вам не доведеться вводити свою парольну фразу щоразу, коли ви використовуєте свій ключ. Агент зберігає ключ в пам'яті від одного разу до іншого. GPG сам не може цього зробити, оскільки процес припиняється після того, як буде зроблено свою роботу.
Ще одна річ, яку може зробити ключовий агент, - це дозволити GPG, що працює на віддаленій машині, отримати ключі в локальному агенті (які можуть завантажувати їх з локального файлу та запитувати про вашу парольну фразу). Gpg-агент ще не може цього зробити, це запланована функція . SSH вже давно здійснює переадресацію агента. (Це причина не використовувати gpg-агент для SSH-ключів.)
GPG 1.x або 2.0.x знає, що агент працює, оскільки встановлена GPG_AGENT_INFO
змінна. Ця змінна містить розташування сокета для зв'язку з агентом, а також ідентифікатор процесу агента. GPG 2.1 завжди розміщує розетку агента ~/.gnupg
. GPG 2.x завжди запускає процес агента, якщо він не працює.
Ви можете запустити агент просто запуском gpg-agent
. Якщо ви хочете зберегти процес агента як частину свого сеансу, ви можете замінити виклик вашого менеджера сеансу на gpg-agent my-session-manager
; деякі дистрибутиви встановлюють це автоматично. GPG автоматично запустить агент, а GPG 2.1 додатково знайде запущений агент, не потребуючи змінної середовища, тому вам не потрібно запускати його таким чином, якщо ви не використовуєте старішу версію GPG або не використовуєте агент для зберігання інших типів таких клавіш, як SSH.
Ви можете відправити агент команду з gpg-connect-agent
командою оболонки. Надішліть kill
команду вбити процес агента (або надіслати йому сигнал).
Gpg-агент постачається разом із самою GPG. Деякі дистрибутиви пакують його окремо.