できない.dev

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 の展開で詰まっていないかを確認する。

よくある原因

  1. OS の ssh 自体が失敗: 鍵未設定、known_hosts 未登録、ProxyJump 設定ミスなど、ターミナルで ssh が通らなければ Remote-SSH も必ず落ちる。
  2. ~/.ssh/config を読んでいない: VSCode の remote.SSH.configFile が別パスを指している、または Windows でパス区切りがおかしい。
  3. 古い暗号系を要求するサーバ: OpenSSH 9 系がデフォルトで弾く ssh-rsa のみ受け付けるサーバに対し、HostKeyAlgorithms 等の補強なしで接続している。
  4. ~/.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-rsa

OpenSSH 9 以降のクライアントから古いサーバに繋ぐ場合に必要。
安全のためサーバ側を更新するのが本筋。

4. ~/.vscode-server を入れ直す

リモートで実行:

rm -rf ~/.vscode-server ~/.vscode-server-insiders

VSCode から再接続すると初回と同じくサーバスクリプトが展開される。公式トラブルシュート でも推奨される手順。

この記事は役立ちましたか?