桐間紗路研究所日報

技術以外の話→ https://kirimasyaro.hateblo.jp

WSL(windows subsystem for Linux)で、windowsのssh-agentを使う

 しょうもないことではまったのでメモ

qiita.com

 だいたいこの記事のとおりです。スタートメニューでサービスと打ってサービスを出して、OpenSSH Authentication Agentを自動→開始。

github.com

 ここから.7zファイルをダウンロード。マイドキュメントでも、c:\Users\hoge\appみたいなフォルダにでも展開する(中身ばらさないでフォルダとして)。

 WSLでは、僕の環境では予め/mnt/c/にcドライブがマウントされている。そこからさっき展開したフォルダにアクセスする。そして、

eval `ssh-agent`

と同じような感じで、

eval $(/path/to/ssh-agent-wsl/ssh-agent-wsl -r)

と書けば、windowsssh-agentをWSLから利用することができる。

 ssh-agentなのにbashを立ち上げる毎にパスフレーズを打つんじゃなくて良いのかって感じだけどまあwindowsの認証情報管理でやってくれるならまあ大丈夫なんじゃないですかね(適当)

 で、みんな~/.bashrcに書けっていうんだけど、ぼくは~/.bash_profileに書くほうがすき。というかなぜかそのほうがうまくいく。そのへんは好みで。というわけで、

vim ~/.bash_profile

eval $(/mnt/c/Users/hoge/app/ssh-agent-wsl/ssh-agent-wsl -r)

で動く。その時に、eval ssh-agentの記述がある場合は消す。そうしないとそっち(WSLのssh-agent)が先に起動してしまう。当たり前だけどなんかあたまわるいので気づかなかった。

 あとは ssh-add ~/.ssh/id_rsaとかいつもどおりやるだけ。ただし、windows側の秘密鍵chmod 0600ができないので使えない。

 まだ試していないが、これで再起動してもずっとパスフレーズ入力が省略できるらしい。本当か?