На новой установке Ubuntu 16.04 я хотел бы использовать gpg для шифра мои резервные копии базы данных, но я не могу иметь gpg-agent
работа.
postgres@db:~$ gpg -s test.txt
You need a passphrase to unlock the secret key for
user: "Nicolas Remond <nicolas@xxx.com>"
2048-bit RSA key, ID F5DECA47, created 2016-11-03
gpg: gpg-agent is not available in this session
Enter passphrase:
Кроме того, кажется, что gpg-агент работает, поскольку я сделал следующее прежде:
postgres@db:~$ gpg-agent
gpg-agent[1715]: no gpg-agent running in this session
postgres@db:~$ gpg-connect-agent /bye
gpg-connect-agent: no running gpg-agent - starting '/usr/bin/gpg-agent'
gpg-connect-agent: waiting for the agent to come up ... (5s)
gpg-connect-agent: connection to agent established
postgres@db:~$ pidof gpg-agent
1762
И конфигурация gpg имеет use-agent
установка:
postgres@dbmaster0:~$ cat ~/.gnupg/gpg.conf | grep use-agent
# For Ubuntu we now use-agent by default to support more automatic
use-agent
Что я пропускаю?
Ответ на меня в случае, если кто-то еще застревает на этом.
На Ubuntu 16.04, версии по умолчанию:
# gpg --version
gpg (GnuPG) 1.4.20
и
# gpg-agent --version
gpg-agent (GnuPG) 2.1.11
Они не совместимы. Это обязательно для использования GPG2:
# gpg2 --version
gpg (GnuPG) 2.1.11
Решение состоит в том, чтобы установить gpgv2
:
sudo apt install gpgv2
Это вызвано тем, что gpg-агент, который идет с Ubuntu, является версией 2, и это пытается соединиться с gpg с версией 2. Но Ubuntu имеет gpg установленную версию 1.