VSCodeのRemote - SSH拡張でSSH接続する時に毎回秘密鍵のパスフレーズを求められるのが面倒すぎるので、パスフレーズを記憶させて入力を省略させる方法を調べました。
前提
- Remote - SSH拡張を利用した鍵認証接続(パスフレーズあり)ができている
- MSYS2を入れている
手順1
- PowerShellを管理者権限で起動させて次のコマンドを流す
Set-Servicessh-agent-StartupTypeAutomaticStart-Servicessh-agentGet-Servicessh-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-Namessh-agent|Stop-Servicesc.exedeletessh-agentRemove-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