ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] ssh-agent и gpg-agent
@ 2014-09-01 18:32 Денис Смирнов
  2014-09-03 14:06 ` Mikhail Efremov
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Денис Смирнов @ 2014-09-01 18:32 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 331 bytes --]

А в связи с чем у нас ssh-agent стартует из /etc/X11/profile.d, а
gpg-agent из /etc/profile.d?

Правильно ли я понимаю, что /etc/profile.d вообще не обрабатывается при
старте иксов?

Если да, то это полностью лишает возможности использовать
enable-ssh-support в gpg-agent.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-01 18:32 [devel] ssh-agent и gpg-agent Денис Смирнов
@ 2014-09-03 14:06 ` Mikhail Efremov
  2014-09-03 14:27   ` Денис Смирнов
  2014-09-03 19:05 ` Dmitry V. Levin
  2014-09-08  6:14 ` Alexey Morozov
  2 siblings, 1 reply; 9+ messages in thread
From: Mikhail Efremov @ 2014-09-03 14:06 UTC (permalink / raw)
  To: devel

On Mon, 1 Sep 2014 22:32:16 +0400 Денис Смирнов wrote:
> Если да, то это полностью лишает возможности использовать
> enable-ssh-support в gpg-agent.

Это в любом случае не лучшая идея. Я вот апстрим Xfce убедил так
не делать по умолчанию в xfce4-session.
ssh-agent гораздо лучше умеет работать с ключами, в gpg-agent какие-то
ключи могут просто не поддерживаться, например. Такая же проблема может
быть и с gnome-keyring, кстати, я где-то видел такую багу.
Т.е. к ssh-agent'у доверия гораздо больше.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-03 14:06 ` Mikhail Efremov
@ 2014-09-03 14:27   ` Денис Смирнов
  2014-09-03 18:51     ` Dmitry V. Levin
  0 siblings, 1 reply; 9+ messages in thread
From: Денис Смирнов @ 2014-09-03 14:27 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1240 bytes --]

On Wed, Sep 03, 2014 at 06:06:59PM +0400, Mikhail Efremov wrote:

> Это в любом случае не лучшая идея. Я вот апстрим Xfce убедил так
> не делать по умолчанию в xfce4-session.

Одно дело по-умолчанию, другое дело дать пользователю возможность самому
решать.

Строчка enable-ssh-support в ~/.gnupg/gpg-agent.conf достаточно ясно
выражает мои желания как пользователя.

> ssh-agent гораздо лучше умеет работать с ключами, в gpg-agent какие-то
> ключи могут просто не поддерживаться, например. Такая же проблема может
> быть и с gnome-keyring, кстати, я где-то видел такую багу.
> Т.е. к ssh-agent'у доверия гораздо больше.

Как мне решить средствами ssh-agent следующую задачу:

У меня есть несколько ключей. И некоторое множество хостов, на которые я
захожу. Разумеется для всех этих хостов в ~/.ssh/config указан
IdentityFile.

Но вот есть одна загвоздка -- если ключ уже в ssh-agent, то все это
замечательно работает. А вот если ключа еще нет -- то не работает вообще
никак. Никто даже и не пытается спросить у меня пароль на ключик.

С gpg-agent ключик всегда считается "добавленным" в агент, и он его
анонсирует. Но при попытке доступа -- спрашивает пароль.

-- 
С уважением, Денис

http://mithraen.ru/


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-03 14:27   ` Денис Смирнов
@ 2014-09-03 18:51     ` Dmitry V. Levin
  2014-09-03 22:56       ` Денис Смирнов
  2014-09-03 23:00       ` Денис Смирнов
  0 siblings, 2 replies; 9+ messages in thread
From: Dmitry V. Levin @ 2014-09-03 18:51 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 602 bytes --]

On Wed, Sep 03, 2014 at 06:27:11PM +0400, Денис Смирнов wrote:
[...]
> Как мне решить средствами ssh-agent следующую задачу:
> 
> У меня есть несколько ключей. И некоторое множество хостов, на которые я
> захожу. Разумеется для всех этих хостов в ~/.ssh/config указан
> IdentityFile.

$ cat ~/.xprofile
#!/bin/sh

if [ -S "$SSH_AUTH_SOCK" ] &&
   [ `ssh-add -L 2>/dev/null |grep -c ^ssh-` -eq 0 ]; then
	cd
	sed '/^[[:space:]]*IdentityFile[[:space:]]*/I!d;s///;s/^~\///' .ssh/config |
		sort -u |
		xargs -r ls -- 2>/dev/null |
		sort -u |
		xargs -r ssh-add -c --
fi


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-01 18:32 [devel] ssh-agent и gpg-agent Денис Смирнов
  2014-09-03 14:06 ` Mikhail Efremov
@ 2014-09-03 19:05 ` Dmitry V. Levin
  2014-09-08  6:14 ` Alexey Morozov
  2 siblings, 0 replies; 9+ messages in thread
From: Dmitry V. Levin @ 2014-09-03 19:05 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 912 bytes --]

On Mon, Sep 01, 2014 at 10:32:16PM +0400, Денис Смирнов wrote:
> А в связи с чем у нас ssh-agent стартует из /etc/X11/profile.d, а
> gpg-agent из /etc/profile.d?

Для ssh-agent есть только X'овые askpass'ы,
для gpg-agent есть pinentry-curses.

Следует помнить, что pinentry-curses не реализует grab keyboard, со всеми
вытекающими.

> Правильно ли я понимаю, что /etc/profile.d вообще не обрабатывается при
> старте иксов?

Если не login shell, то не обрабатывается.

> Если да, то это полностью лишает возможности использовать
> enable-ssh-support в gpg-agent.

/etc/X11/Xsession запускает много всяких файлов, так что настроить запуск
gpg-agent несложно.

Следует помнить, что все агенты, реализующие ssh-agent, помимо самого
ssh-agent, более или менее неполноценные.  Они, как правило, отстают от
ssh-agent по фичам, в частности, по множеству поддерживаемых типов ключей.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-03 18:51     ` Dmitry V. Levin
@ 2014-09-03 22:56       ` Денис Смирнов
  2014-09-03 23:00       ` Денис Смирнов
  1 sibling, 0 replies; 9+ messages in thread
From: Денис Смирнов @ 2014-09-03 22:56 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 963 bytes --]

On Wed, Sep 03, 2014 at 10:51:24PM +0400, Dmitry V. Levin wrote:

>> Как мне решить средствами ssh-agent следующую задачу:
>> У меня есть несколько ключей. И некоторое множество хостов, на которые я
>> захожу. Разумеется для всех этих хостов в ~/.ssh/config указан
>> IdentityFile.
> $ cat ~/.xprofile
> #!/bin/sh

Спасибо. У такого решения есть две проблемы:

1. он запрашивает пароль на ключик в момент добавления ключа.
Следовательно нужно либо его всегда вводить, либо использовать pam_ssh с
паролем на ключи идентичным логину, либо держать на диске ключи без
пароля. Все три варианта мне не очень-то нравятся.

2. пароль запрашивается на каждое соединение с каждым сервером. При
использоваини ControlMaster это даже можно терпеть. Хотя я предполагал
аналогичное gpg-agent поведение со временным запоминанием пароля, тем
более там можно еще и TTL индивидуальный для каждого ключа указать.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-03 18:51     ` Dmitry V. Levin
  2014-09-03 22:56       ` Денис Смирнов
@ 2014-09-03 23:00       ` Денис Смирнов
  1 sibling, 0 replies; 9+ messages in thread
From: Денис Смирнов @ 2014-09-03 23:00 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1: Type: text/plain, Size: 484 bytes --]

On Wed, Sep 03, 2014 at 10:51:24PM +0400, Dmitry V. Levin wrote:

Кстати, еще одна проблема -- скрипты для запуска ssh-agent и gpg-agent
используют, соответственно, ~/.gnupg/.gpg-agent-info и ~/.ssh/agent. Это
не позволяет держать .gnupg и .ssh в отдельном encfs разделе -- при
запуске агентов этот раздел может быть еще не смонтирован.

Может все же использовать XDG_RUNTIME_DIR при его наличии? Например так,
как в аттаче.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #1.2: gnupg2.patch --]
[-- Type: text/x-patch, Size: 1043 bytes --]

diff --git a/gnupg-agent-wrapper.sh b/gnupg-agent-wrapper.sh
index ed3f429..5457860 100755
--- a/gnupg-agent-wrapper.sh
+++ b/gnupg-agent-wrapper.sh
@@ -2,6 +2,8 @@
 
 [ -n "${GNUPGHOME-}" ] || GNUPGHOME="$HOME/.gnupg"
 INFO="$GNUPGHOME/.gpg-agent-info"
+[ -n "$XDG_RUNTIME_DIR" ] && INFO="$XDG_RUNTIME_DIR/gpg-agent-info"
+
 >>"$INFO"
 enable -f /usr/lib/bash/lockf lockf
 builtin lockf "$INFO"
diff --git a/gnupg-agent.sh b/gnupg-agent.sh
index a210ec4..50ef479 100755
--- a/gnupg-agent.sh
+++ b/gnupg-agent.sh
@@ -1,6 +1,8 @@
 #!/bin/sh
 
 [ -n "${GNUPGHOME-}" ] || GNUPGHOME="$HOME/.gnupg"
+INFO="$GNUPGHOME/.gpg-agent-info"
+[ -n "$XDG_RUNTIME_DIR" ] && INFO="$XDG_RUNTIME_DIR/gpg-agent-info"
 
 if [ -d "$GNUPGHOME" ]; then
 	if [ -r "$GNUPGHOME/gpg.conf" ]; then
@@ -11,7 +13,7 @@ if [ -d "$GNUPGHOME" ]; then
 
 	if grep -qs '^[[:space:]]*use-agent' "$CFG" &&
 	   @LIBEXECDIR@/gnupg/gnupg-agent-wrapper; then
-		. "$GNUPGHOME/.gpg-agent-info"
+		. "$INFO"
 		GPG_TTY="$(tty)"; export GPG_TTY
 	fi
 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-01 18:32 [devel] ssh-agent и gpg-agent Денис Смирнов
  2014-09-03 14:06 ` Mikhail Efremov
  2014-09-03 19:05 ` Dmitry V. Levin
@ 2014-09-08  6:14 ` Alexey Morozov
  2014-09-08  6:39   ` Денис Смирнов
  2 siblings, 1 reply; 9+ messages in thread
From: Alexey Morozov @ 2014-09-08  6:14 UTC (permalink / raw)
  To: devel

02.09.2014 01:32, Денис Смирнов пишет:
> Если да, то это полностью лишает возможности использовать
> enable-ssh-support в gpg-agent.
У меня вроде как работает на localhost. Могу опубликовать конфиги, если
надо. Существенно удобнее, на мой взгляд, чем ssh-agent, который в
конфигурации "по умолчанию" запрашивает пароли к ключам на старте сессии.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] ssh-agent и gpg-agent
  2014-09-08  6:14 ` Alexey Morozov
@ 2014-09-08  6:39   ` Денис Смирнов
  0 siblings, 0 replies; 9+ messages in thread
From: Денис Смирнов @ 2014-09-08  6:39 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 583 bytes --]

On Mon, Sep 08, 2014 at 01:14:41PM +0700, Alexey Morozov wrote:

>> Если да, то это полностью лишает возможности использовать
>> enable-ssh-support в gpg-agent.
> У меня вроде как работает на localhost. Могу опубликовать конфиги, если
> надо.

Интересно. Я сейчас это решил проверкой какой агент запущен, и если
запущен ssh-agent -- прибивать его и gpg-agent, перезапуская второй.

> Существенно удобнее, на мой взгляд, чем ssh-agent, который в
> конфигурации "по умолчанию" запрашивает пароли к ключам на старте сессии.

-- 
С уважением, Денис

http://mithraen.ru/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-09-08  6:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-01 18:32 [devel] ssh-agent и gpg-agent Денис Смирнов
2014-09-03 14:06 ` Mikhail Efremov
2014-09-03 14:27   ` Денис Смирнов
2014-09-03 18:51     ` Dmitry V. Levin
2014-09-03 22:56       ` Денис Смирнов
2014-09-03 23:00       ` Денис Смирнов
2014-09-03 19:05 ` Dmitry V. Levin
2014-09-08  6:14 ` Alexey Morozov
2014-09-08  6:39   ` Денис Смирнов

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git