Windows Subsystem for linux (WSL) 中的 ssh-agent 重置

Nat*_*ate 5 linux ssh ssh-agent windows-10 windows-subsystem-for-linux

我正在尝试在 WSL 下使用 ssh-agent 但脚本运行后 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
Run Code Online (Sandbox Code Playgroud)

提示输入密码然后显示指纹和相关变量

在提示符(或单独的脚本)运行之后直接

ssh-add -l
echo "SSH_AGENT_PID is" $SSH_AGENT_PID
echo "SSH_AUTH_SOCK is" $SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)

Could not open a connection to your authentication agent.
SSH_AGENT_PID is
SSH_AUTH_SOCK is
Run Code Online (Sandbox Code Playgroud)

(整理可读性)

代理仍在使用原始 pid 运行(在顶部检查)也尝试eval $(ssh-agent ) > /dev/nulleval $(ssh-agent -s)结合使用

为什么这些会被抹掉?ssh-agent 工作正常,直到 Windows 更新 1709“秋季创作者更新”

信息:linux 版本 4.4.0-43-Microsoft (Microsoft@Microsoft.com)(gcc 版本 5.4.0 (GCC))#1-Microsoft Wed Dec 31 14:42:53 PST 2014

har*_*ymc 7

尝试添加-s参数,如:

eval $(ssh-agent -s)
Run Code Online (Sandbox Code Playgroud)

该参数描述为:

-s在标准输出上生成 Bourne shell 命令。如果 SHELL 看起来不像是 csh 风格的 shell,则这是默认设置。


bab*_*obu 6

我正在复制另一个类似线程中给出的答案(/sf/answers/3565996031/)。

尝试调整会话设置是没有用的。

完整答案:https : //github.com/Microsoft/WSL/issues/3183

简短版本:ssh-agent 转发被 wsl/ubuntu 18.04(或我能想象的任何其他 linux)中的 getsockopt 错误破坏。