お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

VSCode + MSYS2でSSHのパスフレーズ入力を記憶させる

VSCodeのRemote - SSH拡張でSSH接続する時に毎回秘密鍵のパスフレーズを求められるのが面倒すぎるので、パスフレーズを記憶させて入力を省略させる方法を調べた

前提

  • Windows 10 or 11
  • Remote - SSH拡張を利用した公開鍵認証接続(パスフレーズあり)ができている
  • MSYS2を入れている

手順1

  1. PowerShellを管理者権限で起動させて次のコマンドを流す
    Set-Service ssh-agent -StartupType Automatic
    Start-Service ssh-agent
    Get-Service ssh-agent
    
  2. 秘密鍵をssh-agentに食べさせる
    ssh-add C:\Users\hoge\.ssh\id_rsa
    
  3. パスフレーズを求められるので入力
  4. 追加した秘密鍵が登録されていることを確認
     ssh-add -l
    
  5. VSCodeからRemote - SSHを使って接続する
  6. パスフレーズ無しで入れればOK、パスフレーズを求められたら以下の手順2へ

手順2

以下の警告が流れてうまく行かないケース、この場合はWindows付属のOpenSSHが腐っているので入れ替える

warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
  1. 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"
    
  2. Chocolateyを入れる
    1. 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'))
    2. chocoでインストール確認
  3. OpenSSHをインストールする
    choco install openssh --package-parameters="/SSHAgentFeature"
    
  4. サービスからssh-agentが実行中で自動起動するようになっていることを確認
  5. 秘密鍵をssh-agentに食べさせる
    ssh-add C:\Users\hoge\.ssh\id_rsa
    
  6. 追加した秘密鍵が登録されていることを確認
     ssh-add -l
    
  7. VSCodeからRemote - SSHを使って接続する
  8. パスフレーズ無しで入れればOK