エラーの内容
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に、接続時に検索されたパスが正確に表示されます。そのログは通常、実際の問題を直接指し示しています。

