WSL(windows subsystem for Linux)で、windowsのssh-agentを使う
しょうもないことではまったのでメモ
だいたいこの記事のとおりです。スタートメニューでサービスと打ってサービスを出して、OpenSSH Authentication Agent
を自動→開始。
ここから.7zファイルをダウンロード。マイドキュメントでも、c:\Users\hoge\app
みたいなフォルダにでも展開する(中身ばらさないでフォルダとして)。
WSLでは、僕の環境では予め/mnt/c/
にcドライブがマウントされている。そこからさっき展開したフォルダにアクセスする。そして、
eval `ssh-agent`
と同じような感じで、
eval $(/path/to/ssh-agent-wsl/ssh-agent-wsl -r)
と書けば、windowsのssh-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
ができないので使えない。
まだ試していないが、これで再起動してもずっとパスフレーズ入力が省略できるらしい。本当か?