Windowsでsshを使うときは、Git for Windowsに附属するsshを使うのが慣例だったが、Windows 10のBuild 1809 (2019年)からOpenSSHがOSの本体にも含まれるようになった。
本家のOpenSSHを使えば起動時にssh-agentが自動でstartするため使い勝手がよくなる。また、Git for Windowsへの依存も減るので移行した。
OpenSSHの有効化
設定のManage Optional Features画面で、OpenSSH clientがインストールされていることを確認する。インストール済みでない場合、追加する。
確認手順
利用するコマンドラインから
where ssh
をたたき、
C:\Windows\System32\OpenSSH\ssh.exe
が含まれていることを確認する。
ssh-agent の自動スタート
次に、services.mscの管理画面からOpenSSH Authentication Agentを選択し、右クリックでプロパティを選択する。
- Startup typeをAutomaticかAutomatic (Delayed Start)(自動)に変更する
- サービスを起動する
Git Bashで使うsshを変える
もともとGit Bashを使っていた場合、
$ where ssh
C:\Program Files\Git\usr\bin\ssh.exe
C:\Windows\System32\OpenSSH\ssh.exe
$ which ssh
C:\Program Files\Git\usr\bin\ssh.exe
となり、古いsshがデフォルトになっている。Pathの一番前にC:\Windows\System32\OpenSSHをつけることで直せた。
PATH="/c/Windows/System32/OpenSSH:${PATH}"
また、GitでSSHを使っている場合、GIT_SSHの環境変数にパスを書くと良さそう。(未検証)
GIT_SSH=/c/Windows/System32/OpenSSH/ssh.exe
編集した.bashrcを読み込めば完成。
$ source ~/.bashrc