1

Я пытаюсь использовать ssh-agent под WSL, но параметры SSH стираются после запуска скрипта

Из .bashrc (урезанная версия)

eval $(ssh-agent)
ssh-add

ssh-add -l
echo "SSH_AGENT_PID is" $SSH_AGENT_PID
echo "SSH_AUTH_SOCK is" $SSH_AUTH_SOCK

Подсказки для ключевой фразы затем показывают отпечаток пальца и соответствующие переменные

сразу после запуска (или отдельного скрипта)

ssh-add -l
echo "SSH_AGENT_PID is" $SSH_AGENT_PID
echo "SSH_AUTH_SOCK is" $SSH_AUTH_SOCK

дает

Could not open a connection to your authentication agent.
SSH_AGENT_PID is
SSH_AUTH_SOCK is

(приведено в порядок для удобства чтения)

агент все еще работает с исходным pid (проверено сверху), также пробовал eval $(ssh-agent ) > /dev/null и eval $(ssh-agent -s) и в комбинации

Почему они стираются? ssh-agent работал нормально до обновления Windows 1709 "Осеннее обновление создателей"

для информации: linux версия 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc версия 5.4.0 (GCC)) # 1-Microsoft ср 31 дек. 14:42:53 PST 2014

2 ответа2

3

Попробуйте добавить параметр -s , как в:

eval $(ssh-agent -s)

Этот параметр описывается как:

-s Генерировать команды оболочки Bourne на стандартный вывод. Это значение по умолчанию, если SHELL не выглядит как оболочка в стиле csh.

2

Я копирую ответ, данный в другой похожей теме (https://stackoverflow.com/a/50942800/9966057).

Бесполезно пытаться настроить вашу сессию.

Полный ответ: https://github.com/Microsoft/WSL/issues/3183

Короткая версия: переадресация ssh-agent нарушена ошибкой getsockopt в wsl / ubuntu 18.04 (или любом другом linux, который я себе представляю).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .