VS Code Remote SSHエラーを修正:Could not establish connection to remote host. An SSH installation couldn't be found.

beginner💻 VS Code2026-03-18| VS Code 1.70以上 + Remote - SSH拡張機能(Windows 10/11、macOS、Linux)

Error Message

Could not establish connection to remote host. An SSH installation couldn't be found.
#vscode#remote-ssh#connection#ssh

エラーの内容

VS Codeを開いてRemote ExplorerでSSHホストをクリックすると、以下のエラーが発生します:

Could not establish connection to remote host. An SSH installation couldn't be found.

スタックトレースも手がかりもありません。接続ウィンドウが閉じられ、空のエディタが残されます。

原因の説明

Remote - SSHには独自のSSHクライアントが付属していません。マシン上に既にインストールされているローカルのsshバイナリに依存しています。具体的には、システムのPATH経由でアクセス可能なものが必要です。VS Codeがそのバイナリを見つけられない場合(またはターミナルとは異なるPATHを参照している場合)、このエラーが発生します。

よくある原因:

  • Windowsの場合:OpenSSHクライアントのオプション機能が有効になっていない
  • Windowsの場合:Git for WindowsにはSSHが付属しているが、VS CodeがチェックするPATHには含まれていない
  • macOS/Linuxの場合:SSHはインストールされているが、実行ファイルのパスがVS CodeのPATH環境変数に含まれていない
  • VS Codeの設定remote.SSH.pathが存在しないパスを指している

簡単な診断方法

設定を変更する前に、システムにSSHがインストールされているか確認しましょう。VS Codeの統合ターミナルではなく、システムのターミナルまたはPowerShellを開いてください:

ssh -V

OpenSSH_8.9p1, LibreSSL 3.3.6のような出力が表示された場合、SSHはインストールされています。VS Codeがそれを見つけられないだけです。command not foundや何も表示されない場合、SSHはまだインストールされていません。以下のインストール手順から始めてください。

Windowsでの修正方法

方法1:OpenSSHクライアントを有効にする(推奨)

Windows 10および11にはOpenSSHがオプション機能として組み込まれていますが、デフォルトでは無効になっています。PowerShell(管理者として実行)で有効にします:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

GUIから操作する場合は、設定 → アプリ → オプション機能 → 機能の追加 → OpenSSHクライアント → インストールから行えます。

どちらの方法でも、正常に動作しているか確認してください:

ssh -V
# 期待される出力: OpenSSH_for_Windows_8.x, LibreSSL x.x.x

この後はVS Codeを完全に再起動してください。ウィンドウを閉じるだけでなく、タスクバーのトレイからも終了させる必要があります。エラーは消えるはずです。

方法2:VS CodeをGitのSSHに向ける

Git for WindowsにはSSHがC:\\Program Files\\Git\\usr\\bin\\ssh.exeにバンドルされています。VS Codeは自動的には見つけられませんが、検索場所を明示的に指定できます。

設定(Ctrl+,)を開いてremote.SSH.pathを検索し、そのパスを入力します。またはsettings.jsonを直接編集します:

{
  "remote.SSH.path": "C:\\\\Program Files\\\\Git\\\\usr\\\\bin\\\\ssh.exe"
}

方法3:SSHをPATHに手動で追加する

OpenSSHはデフォルトでC:\\Windows\\System32\\OpenSSH\\にインストールされますが、そのディレクトリがPATHから除外される場合があります。PowerShell(管理者として実行)で修正します:

[System.Environment]::SetEnvironmentVariable(
  'Path',
  $env:Path + ';C:\\Windows\\System32\\OpenSSH',
  [System.EnvironmentVariableTarget]::Machine
)

この後はVS Codeを再起動してください。

macOSでの修正方法

macOSには/usr/bin/sshにSSHが組み込まれていますが、VS CodeはSSHが含まれていない限定的なPATHを継承することがあります。特にDockからVS Codeを起動した場合に起こりやすいです。

ステップ1:SSHの場所を確認する

which ssh
# 通常は: /usr/bin/ssh

ステップ2:VS Codeの設定でパスを固定する

{
  "remote.SSH.path": "/usr/bin/ssh"
}

HomebrewでインストールしたOpenSSHを使用している場合、パスが異なります:

which ssh
# /opt/homebrew/bin/ssh  (Apple Silicon)
# /usr/local/bin/ssh     (Intel Mac)

which sshの出力をそのまま使用してください。推測で入力しないでください。

Linuxでの修正方法

最小構成のサーバーインストールや新しくプロビジョニングされたコンテナでは、クライアントパッケージが欠けていることがよくあります。パッケージマネージャーでインストールします:

# Debian/Ubuntu
sudo apt update && sudo apt install openssh-client

# Fedora/RHEL
sudo dnf install openssh-clients

# Arch
sudo pacman -S openssh

動作しているか確認します:

which ssh && ssh -V

競合する設定の確認

古いremote.SSH.pathの設定がこのエラーの見つけにくい原因になることがあります。数ヶ月前にカスタムパスを設定していて、そのバイナリが移動または削除されていた場合、VS Codeは黙って失敗します。

settings.jsonを開いて、以下の行を確認してください:

// パスが間違っている場合は削除または更新してください
"remote.SSH.path": "/old/path/to/ssh"  // <-- SSHがPATHに含まれている場合は削除してください

この設定を完全に削除すると、VS CodeはPATHからSSHを再び自動検出します。

修正の確認

  • VS Codeのすべてのウィンドウを完全に閉じる(リモートウィンドウも含む)
  • VS Codeを再度開く
  • コマンドパレットを開く(Ctrl+Shift+P / Cmd+Shift+P
  • **Remote-SSH: Connect to Host...**を実行する
  • ホストを選択する

接続の進行状況通知が表示され、リモートウィンドウがきれいに開くはずです。VS Codeがどのバイナリを使用しているか正確に確認したいですか?Outputパネル(Ctrl+Shift+U)を開き、ドロップダウンからRemote - SSHを選択して、以下を確認します:

[info] SSH executable: /usr/bin/ssh

まだ解決しない場合

上記の手順をすべて試してもまだ解決しない場合は、以下も確認してみてください:

  • Remote - SSH拡張機能を再インストールする:拡張機能パネルからアンインストールし、VS Codeをリロードしてから再インストールします。拡張機能の状態が破損していることが、思いのほか頻繁にこの問題を引き起こします。
  • VS Codeのバージョンを確認する:Remote - SSHはVS Code 1.35以上が必要です。code --versionを実行してください。それより古いバージョンでは、SSHの状態に関係なく動作しません。
  • 他の拡張機能を一時的に無効にする:VPNクライアントやプロキシ拡張機能がSSHパスの解決を妨害することがあります。Remote - SSH以外のすべてを無効にして再テストしてみてください。
  • 生のログを確認する:OutputパネルのRemote - SSHに、接続時に検索されたパスが正確に表示されます。そのログは通常、実際の問題を直接指し示しています。

Related Error Notes