Сброс ssh-agent в подсистеме Windows для Linux (WSL)
Я пытаюсь использовать 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
Репост отсюда: https://superuser.com/questions/1278539/ssh-agent-reset-in-windows-subsystem-for-linux-wsl
3 ответа
Это поздний ответ для всех, кто прибывает сюда: https://github.com/Microsoft/WSL/issues/3183
Короткая версия: пересылка ssh-agent нарушена ошибкой getsockopt в wsl / ubuntu 18.04 (или любом другом linux, который я себе представляю).
На самом деле ни один из вышеперечисленных сценариев не работает в WSL2 Ubuntu 18.04. Единственным хорошим решением для меня было то, что я просто добавилeval "$(ssh-agent -s)"
моему.bash_profile
.
Эта проблема может быть фикс на Ubuntu 18.04 4.4.0-19041-Microsoft по следующему из здесь :
[ -x /usr/bin/ssh-agent ] && eval "$(ssh-agent -s)"
ssh-add ~/.ssh/yourseckey
добавьте это в свой
.bashrc