VSCodeのRemote – SSH拡張でSSH接続する時に毎回秘密鍵のパスフレーズを求められるのが面倒すぎるので、パスフレーズを記憶させて入力を省略させる方法を調べた
目次
前提
- Remote – SSH拡張を利用した公開鍵認証接続(パスフレーズあり)ができている
- MSYS2を入れている
手順 1
- PowerShellを管理者権限で起動させて次のコマンドを流す
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
- VSCodeを起動してbashを開く
ssh-add /c/Users/hogepiyo/.ssh/id_rsa
で秘密鍵をssh-agentに食べさせる- パスフレーズを求められるので入力
ssh-add -l
で3で追加したPATHが登録されていることを確認- VSCodeからRemote – SSHを使って接続する
- パスフレーズ無しで入れればOK、パスフレーズを求められたら以下の手順2へ
手順 2
以下の警告が流れてうまく行かないケース、この場合はWindows付属のOpenSSHが腐っているので入れ替える
warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
- PowerShellを管理者権限で起動させて次のコマンドを流して標準のOpenSSHをアンインストールする
Get-Service -Name ssh-agent | Stop-Service
sc.exe delete ssh-agent
Remove-WindowsCapability -Online -Name "OpenSSH.Client~~~~0.0.1.0"
Remove-WindowsCapability -Online -Name "OpenSSH.Server~~~~0.0.1.0"
- Chocolateyを入れる
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco
でインストール確認
- OpenSSHをインストールする
choco install openssh --package-parameters="/SSHAgentFeature"
- サービスから
ssh-agent
が実行中で自動起動するようになっていることを確認 ssh-add -l
で手順1の3で追加したPATHが登録されていることを確認- VSCodeからRemote – SSHを使って接続する
- パスフレーズ無しで入れればOK
- Windows Updateの都度に腐ったOpenSSHにすり替えられるので、その都度毎回やらないといけないのがにんともかんとも…