WSL Ubuntu 18.04 の ssh-agent が動作しない問題の暫定対処法

Windows 10 ( build: 17134.228 ) の WSL 上の Ubuntu 18.04 で ssh-agent を使おうと思ったのですが、

$ eval `ssh-agent`
$ ssh-add ~/private_key
$ ssh -A hostname

でリモートへログインすると ssh-agent がおかしくなって、
リモート先に ssh の秘密鍵情報が渡りませんでした。


原因

どうやら、以下の WSL のバグを踏み抜いたみたいです。
https://github.com/Microsoft/WSL/issues/3183

なお、そのissue によると Insider Build 17704 で修正されているようです。
しかし、次のリリースのWindows まで待ってられません。
という事で同じissue内に書いてある解決法を少し修正して適応しました。


暫定対処法

Ubuntu 18.04 の bash では、 ~/.local/bin が優先となるような PATH が設定されているので、
そこに バイナリを突っ込みます。
zsh の場合は、 ~/.zprofile を作って同様のことをしましょう。

$ mkdir -p ~/.local/bin
$ mkdir ~/works
$ cd ~/works
$ mkdir binary
$ wget https://mirrors.kernel.org/ubuntu/pool/main/o/openssh/openssh-client_7.2p2-4ubuntu2.6_amd64.deb
$ dpkg -x openssh-client_7.2p2-4ubuntu2.6_amd64.deb ~/works/binary
$ cp binary/usr/bin/ssh-agent ~/.local/bin

これで、 ~/.local/bin に入っている ssh-agent が優先されて、
ssh-agent が動きます。


2019/1/22 追記

以前バイナリのファイル名が
openssh-client_7.2p2-4ubuntu2.4_amd64.deb
でしたが、
openssh-client_7.2p2-4ubuntu2.6_amd64.deb
に変更されていました。 今後も変更されるかと思います。