Я использую Fedora 22. Я пытаюсь настроить GnuPG, чтобы мои SSH-соединения аутентифицировались с помощью моего подраздела аутентификации PGP, который находится на моем Yubikey Neo.
У меня есть системный модуль, запускающий gpg-agent следующим образом:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
И я включил поддержку SSH в конфигурации:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Другие части настройки включают в себя добавление ключевой ручки моего ключа в ~/.gnupg/sshcontrol
файл, добавление моего открытого ключа на удаленный хост и объявление переменных среды .
В целом, просматривая различные журналы, кажется, что установка работает, я вижу, что SSH находит ключ, но на самом деле не может подписать его. Если я посмотрю журналы от gpg-agent
, то увижу, что программа не запускается pinentry
и, следовательно, не запрашивает PIN-код:
2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>
Здесь мы видим, что при использовании в сочетании с SSH некоторые вызовы ioctl не выполняются при вызове pinentry. Однако, если я запускаю следующее:
$ echo "Test" | gpg2 -s
Окно PIN-кода выскакивает, и все работает нормально.
Можете ли вы помочь мне понять, что происходит с этой настройкой и SSH?
tar
togpg2
на Mac OS X, и ответ vigo решил эту проблему для меня.Ответы:
Ну, это сработало для меня:
добавьте это к себе
.bashrc
или просто пните его перед использованием gpg.источник
Я нашел ответ на самом сайте GPG . Агент не смог найти, на каком экране отображать окно Pinentry. Я просто должен был положить следующее в моем
.*shrc
файле:источник
gpg-connect-agent
это выводитcan't connect to the agent: IPC connect call failed
.gpg-agent
работает нормально, иGPG_AGENT_INFO
env vars настроены правильно.export GPG_AGENT_INFO
к.bashrc
фиксированному данному вопросу сgpg-connect-agent IPC connect call failed
. Я не добавлял это ранее, потому чтоecho $GPG_AGENT_INFO
в моей оболочке все было в порядке ... но, оказывается, все еще требуется.