Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 29 Apr 24 03:15:24, всего сообщений: 8279
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 5727 из 8279 ========================================= RU.LINUX =
От   : Sergey Zabolotny                 2:469/122.2        08 Jun 19 21:59:36
Кому : Eugene Grosbein                                     08 Jun 19 21:59:36
Тема : SSH_AUTH_SOCK
FGHI : area://RU.LINUX?msgid=2:469/122.2+5cfc0e4d
На   : area://RU.LINUX?msgid=grosbein.net+731f0765
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.LINUX?msgid=grosbein.net+5077e96c
==============================================================================
 Hello *Eugene.*

Friday 07 June 2019 02:30, Eugene Grosbein wrote to Sergey Zabolotny:

SZ>> подключаюсь к серверу по ссх с включенным ForwardAgent, локальные
SZ>> ключи на сервер прокидываются и все работает. не устраивает
SZ>> только то, что сокет создается в
SZ>> $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid>. хочу, чтоб он лежал,
SZ>> например, где-то тут $TMPDIR/SSH_AUTH_SOCK/agent.<ppid>. как
SZ>> такое можно сделать не трогая клиентскую сторону? в интернетах
SZ>> пишут, что это прям боль и ничего не получится. но вдруг есть
SZ>> какие-то обходные пути?

EG> Hо зачем? Это, вообще говоря, плохое и глупое требование,
есть система в которую могут логиниться множество разных пользователей. у каждого есть свои ссх ключи. пользователь после логина стартует некий скрипт который поднимает набор докер контейнеров, в один из которых нужно прокинуть пользовательские ключи.
пакет докер контейнеров поднимается при помощи docker-composer, конфиг которого изменять нельзя. кроме того, если клиент пришел с отключеным агентом (SSH_AUTH_SOCK не засечена) внутрь вышеупомянутого контейнера должен быть прокинут дефолтный ключ, который лежит в соседнем контейнере и подключается так:

 volumes:
   - default_ssh_key:/.ssh-agent:ro

идея, как советуют в интернетах, прокинуть сокет внутрь контейнера используя:
docker run -v ${SSH_AUTH_SOCK}:${SSH_AUTH_SOCK} -e SSH_AUTH_SOCK="${SSH_AUTH_SOCK}"
не подходит т.к., если в конфиг docker-composer написать что-то типа:

 volumes:
   - default_ssh_key:/.ssh-agent:ro
   - ${SSH_AUTH_SOCK}:${SSH_AUTH_SOCK}:ro
 environment:
   - SSH_AUTH_SOCK

и клиент придет с отключеным ссх-агентом мы получим ошибку при попытке поднять этот контейнер.
поэтому я подумал, что можно было бы прокинуть всю директорию (весь $TMPDIR не вариант) с сокетами внутрь контейнера используя:

 volumes:
   - default_ssh_key:/.ssh-agent:ro
   - $TMPDIR/SSH_AUTH_SOCK:$TMPDIR/SSH_AUTH_SOCK:ro
 environment:
   - SSH_AUTH_SOCK

в таком случае, если клиент придет со своими ключами переменная SSH_AUTH_SOCK будет переопределена и клиентские ключи будут видны в контейнере. в противном случае будет использовано дефолтное значение SSH_AUTH_SOCK, которое смотрит на дефолтный ключ.

EG> потому что ниоткуда не следует, что по этому пути уже нет файла,
EG> который мог остаться с прошлого ребута или по любой другой причине.
так же как и нет гарантии, что с прошлого ребута мог остаться файл $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid>

EG> И тогда выйдет обломчикус. То есть ты предлагаешь заменить
EG> надежную схему на ненадежную.
другого, более правильного способа я не придумал, к сожалению.


--- GoldED+ 1.1.5-031023 (WinNT 5.1.2600-Service_Pack_3 i1586)
* Origin: [icq:122018120] [mailto:zabolotny[at]hotbox.ru] (2:469/122.2)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.068775 секунды