Windows で MSYS2 の ssh-agent を使う
Windows で MSYS2 の ssh-agent を使う
WindowsのGUIアプリ(IDEなど)と連携したくなったので調査。
MSYS2 でターミナルを起動(mingw64.exe
) して、ssh-agent
を起動して鍵を登録する。
私は ssh-agent の起動には keychain を使っている。
$ keychain $ . ~/.keychain/${HOSTNAME}-sh $ ssh-add ~/.ssh/xxx.id_rsa $ ssh-add ~/.ssh/yyy.id_rsa
すると、環境変数 SSH_AGENT_PID
と SSH_AUTH_SOCK
が作られる。
ここまではいつも通り。
$ env | grep SSH_AUTH_SOCK SSH_AUTH_SOCK={{SOCKファイルの場所}}
しかしこれらの環境変数はWindows側には存在しないため、このままでは ssh-agent が使えない。
> echo %SSH_AUTH_SOCK% %SSH_AUTH_SOCK%
いくつか方法はあるのだろうけど、ひとまず setx.exe
を使うことにした。
これは cmd.exe シェルの set に当たるもので、Windowsの環境変数を設定する実行ファイル。
$ setx.exe SSH_AUTH_SOCK "$SSH_AUTH_SOCK" $ setx.exe SSH_AGENT_PID "$SSH_AGENT_PID"
エクスプローラ もしくは Win+R
から cmd.exe
を新しく起動して確認。
できた。
> echo %SSH_AUTH_SOCK% {{SOCKファイルの場所(Windowsのスラッシュ区切り)}}
ssh-agent も使えている。
> c:\msys64\usr\bin\ssh.exe xxx.com Last login: Wed Nov 1 03:01:40 2017 from xxx
ぐぐったところ、pageant というツールを使ってもできるらしいけど、
使い慣れた ssh と ssh-agent で今のところ十分。