VSCode の Remote-SSH で接続できない
Remote-SSH の接続失敗は素の ssh コマンドが先に通っているかが最大の切り分けポイント。
~/.ssh/config を整え、リモート側に VSCode Server 展開用の対応アーキテクチャと書き込み権限があるかを確認する。
#vscode#remote-ssh#ssh#remote-development
要約
Could not establish connection to "host" の多くは VSCode 側ではなく OS の ssh コマンドが通っていない ことが原因。
まず ssh user@host を素で成功させ、その上で ~/.vscode-server の展開で詰まっていないかを確認する。
よくある原因
- OS の ssh 自体が失敗: 鍵未設定、known_hosts 未登録、ProxyJump 設定ミスなど、ターミナルで
sshが通らなければ Remote-SSH も必ず落ちる。 - ~/.ssh/config を読んでいない: VSCode の
remote.SSH.configFileが別パスを指している、または Windows でパス区切りがおかしい。 - 古い暗号系を要求するサーバ: OpenSSH 9 系がデフォルトで弾く
ssh-rsaのみ受け付けるサーバに対し、HostKeyAlgorithms等の補強なしで接続している。 - ~/.vscode-server の破損: VSCode のバージョン跨ぎでサーバスクリプトが半端な状態のままになり、展開時にエラーが出る。
解決策
1. まず素の ssh を通す
ssh -v user@example.com
# Authentication succeeded まで出ることを確認ここが通らない限り Remote-SSH も成功しない。
鍵を作成・登録し、known_hosts を一度更新する。
2. ~/.ssh/config を VSCode に教える
// settings.json
"remote.SSH.configFile": "${env:HOME}/.ssh/config"公式の Remote-SSH ガイド のとおり、Host / HostName / User / IdentityFile / ProxyJump を ~/.ssh/config に書いておくと VSCode 側のホスト一覧に出る。
3. 古い暗号系のサーバへの対応
Host legacy
HostName legacy.example.com
User dev
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsaOpenSSH 9 以降のクライアントから古いサーバに繋ぐ場合に必要。
安全のためサーバ側を更新するのが本筋。
4. ~/.vscode-server を入れ直す
リモートで実行:
rm -rf ~/.vscode-server ~/.vscode-server-insidersVSCode から再接続すると初回と同じくサーバスクリプトが展開される。公式トラブルシュート でも推奨される手順。