Bug 27342 - gpg-agent --enable-ssh-support doesn't work
Summary: gpg-agent --enable-ssh-support doesn't work
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: gnupg2 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL: http://bugs.etersoft.ru/show_bug.cgi?...
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-16 12:44 MSK by Vitaly Lipatov
Modified: 2013-06-26 16:32 MSK (History)
9 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2012-05-16 12:44:46 MSK
$ ssh-add
Enter passphrase for /home/lav/.ssh/id_dsa: 
SSH_AGENT_FAILURE
Could not add identity: /home/lav/.ssh/id_dsa

$ env | grep SSH
SSH_AGENT_PID=27395
SSH_AUTH_SOCK=/tmp/gpg-7DBlaZ/S.gpg-agent.ssh

$ ps -axw | grep gpg
27395 ?        Ss     0:00 /usr/bin/gpg-agent --sh --daemon --enable-ssh-support --write-env-file /home/lav/.cache/gpg-agent-info

gpg-agent запускается при логине в XFCE.

Нужно как-то особенно пользоваться? Здесь пишут, что надо GPG-ключи экспортировать:
https://bbs.archlinux.org/viewtopic.php?id=117040
Comment 1 Dmitry V. Levin 2012-05-16 13:22:00 MSK
IMHO использовать в качестве ssh-agent что-либо отличное от ssh-agent это нарываться на неприятности.
Comment 2 Mikhail Efremov 2012-05-16 17:07:49 MSK
> gpg-agent запускается при логине в XFCE.

Он не должен запускаться с --enable-ssh-support если уже есть ssh-agent, запущенный из /etc/X11/profile.d/ssh-agent.sh.
Если же SSH_AGENT_PID не установлена, то да, запускается gpg-agent в качестве ssh-agent'а.
Это можно изменить, установив в качестве ssh-agent'а собственно ssh-agent:
xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s ssh-agent
(он, разумеется, запустится только если он еще не запущен).
При этом gpg-agent не будет запускаться совсем.
Или просто отключить запуск агентов:
xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false

А еще бывает gnome-keyring, который притворяется ssh и gpg агентами. Он тоже может запускаться в Xfce, если установлена галка "Запускать службы GNOME при входе в систему" в настройках.
Comment 3 Vitaly Lipatov 2012-05-18 02:27:41 MSK
(В ответ на комментарий №2)
> > gpg-agent запускается при логине в XFCE.
> 
> Он не должен запускаться с --enable-ssh-support если уже есть ssh-agent,
> запущенный из /etc/X11/profile.d/ssh-agent.sh.
Что значит "не должен"? Xfce запускает его, если в нём явно не указан запуск именно ssh-agent.
И по умолчанию именно так и есть.

> Это можно изменить, установив в качестве ssh-agent'а собственно ssh-agent:
> xfconf-query -c xfce4-session -p /startup/ssh-agent/type -n -t string -s
> ssh-agent
Да, это я понимаю.

...
> Или просто отключить запуск агентов:
> xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false
Спасибо, и как без ssh-agent жить?
 
> А еще бывает gnome-keyring, который притворяется ssh и gpg агентами. Он тоже
> может запускаться в Xfce, если установлена галка "Запускать службы GNOME при
> входе в систему" в настройках.
Ну для меня это нечто неведомое.
Comment 4 Vitaly Lipatov 2012-05-18 03:03:20 MSK
(В ответ на комментарий №1)
> IMHO использовать в качестве ssh-agent что-либо отличное от ssh-agent это
> нарываться на неприятности.
Понятно. Тогда пойду по пути изменения умолчаний xfce, чтобы gpg-agent в таком качестве не встречать.
Comment 5 Mikhail Efremov 2012-05-18 11:06:10 MSK
(В ответ на комментарий №3)
> (В ответ на комментарий №2)
> > > gpg-agent запускается при логине в XFCE.
> > 
> > Он не должен запускаться с --enable-ssh-support если уже есть ssh-agent,
> > запущенный из /etc/X11/profile.d/ssh-agent.sh.
> Что значит "не должен"? Xfce запускает его, если в нём явно не указан запуск
> именно ssh-agent.
> И по умолчанию именно так и есть.

Если уже есть запущенный ssh-agent, то gpg-agent запускается без ssh support.
У нас ssh-agent уже должен быть запущен, потому что в openssh-clients есть
/etc/X11/profile.d/ssh-agent.sh.
Иначе запускается gpg-agent с ssh support. Логика апстрима понятна: раз gpg-agent это умеет, то можно запустить только его и получить сразу и ssh, и gpg агентов. Управлять же отдельно запуском gpg-agent'а почему-то нельзя. Т.е. запустить только gpg-agent без ssh-agent'а не получится. Впрочем, это, возможно, и не особо нужно.
В принципе, у нас это все можно изменить, но это тема уже не для этой баги.
Comment 6 Vitaly Lipatov 2012-05-18 20:52:50 MSK
(В ответ на комментарий №5)
...
> Если уже есть запущенный ssh-agent, то gpg-agent запускается без ssh support.
> У нас ssh-agent уже должен быть запущен, потому что в openssh-clients есть
> /etc/X11/profile.d/ssh-agent.sh.
У нас в случае XFCE эти скрипты не выполняются, как я понимаю. Потому что 
они вызываются из /etc/X11/Xsession, который не используется. По крайней мере я так понял причину проблемы.


> Иначе запускается gpg-agent с ssh support. Логика апстрима понятна: раз
> gpg-agent это умеет, то можно запустить только его и получить сразу и ssh, и
> gpg агентов. Управлять же отдельно запуском gpg-agent'а почему-то нельзя. Т.е.
> запустить только gpg-agent без ssh-agent'а не получится. Впрочем, это,
> возможно, и не особо нужно.
> В принципе, у нас это все можно изменить, но это тема уже не для этой баги.
Ясно, спасибо.
Comment 7 Dmitry V. Levin 2013-06-25 06:00:20 MSK
(In reply to comment #5)
> (В ответ на комментарий №3)
> > (В ответ на комментарий №2)
> > > > gpg-agent запускается при логине в XFCE.
> > > 
> > > Он не должен запускаться с --enable-ssh-support если уже есть ssh-agent,
> > > запущенный из /etc/X11/profile.d/ssh-agent.sh.
> > Что значит "не должен"? Xfce запускает его, если в нём явно не указан запуск
> > именно ssh-agent.
> > И по умолчанию именно так и есть.
> 
> Если уже есть запущенный ssh-agent, то gpg-agent запускается без ssh support.
> У нас ssh-agent уже должен быть запущен, потому что в openssh-clients есть
> /etc/X11/profile.d/ssh-agent.sh.
> Иначе запускается gpg-agent с ssh support.

В p7 (точнее говоря, в Simply 7 "из коробки"), несмотря на то, что ssh-agent уже работает, xfce4-session все равно запускает gpg-agent --enable-ssh-support.

> Логика апстрима понятна: раз
> gpg-agent это умеет, то можно запустить только его и получить сразу и ssh, и
> gpg агентов.

Логика апстрима неправильная: gpg-agent никогда это нормально не умел, на данный момент толком не умеет, и будет всегда отставать от ssh-agent.

> Управлять же отдельно запуском gpg-agent'а почему-то нельзя. Т.е.
> запустить только gpg-agent без ssh-agent'а не получится. Впрочем, это,
> возможно, и не особо нужно.
> В принципе, у нас это все можно изменить, но это тема уже не для этой баги.

Поскольку gpg-agent --enable-ssh-support "из коробки" работает плохо, а ssh-agent, наоборот, работает хорошо, предлагаю, наконец, отказаться от запуска gpg-agent --enable-ssh-support "из коробки".
Comment 8 Sergey V Turchin 2013-06-25 16:15:54 MSK
(В ответ на комментарий №7)
> предлагаю, наконец, отказаться от запуска
> gpg-agent --enable-ssh-support "из коробки".
Скорее всего будет достаточно закоментировать эту часть кода, оставив только специфичные вещи, если они есть, т.к. /etc/profile.d/gnupg-agent.sh
Comment 9 Mikhail Efremov 2013-06-25 18:32:18 MSK
Проблемы использования gpg-agent с --enable-ssh-support к xfce отношения не имеют. Здесь просто пообсуждали заодно настройки по умолчанию xfce, по этому поводу есть #29108. Так что возвращаю.
Comment 10 Sergey V Turchin 2013-06-25 18:39:23 MSK
Тогда просто не баг.
Comment 11 AEN 2013-06-25 19:12:08 MSK
Нет, это бага, для которой найден обход.
Comment 12 Dmitry V. Levin 2013-06-26 01:59:25 MSK
(In reply to comment #10)
> Тогда просто не баг.

Режим поддержки ssh agent (gpg-agent --enable-ssh-support) работает настолько плохо, что честнее было бы сказать, что он просто не работает.  Это баг gpg-agent.
Comment 13 Sergey V Turchin 2013-06-26 16:32:09 MSK
(В ответ на комментарий №12)
> Это баг gpg-agent.
Понятно.