VSCode Remote SSHが突然接続できなくなった場合の原因と解決策を解説します。主な原因はホスト鍵の不一致・OpenSSHのバージョン問題・VSCode Serverキャッシュ・SSH デーモン停止・ファイアウォールの5つです。それぞれの確認手順と対処法を順番に紹介します。
VSCode SSH接続が急に使えなくなる主な原因
VSCode の Remote - SSH 拡張機能を使っていると、昨日まで動いていたのに突然接続できなくなるケースがあります。焦って再インストールする前に、原因を絞り込むことが解決への近道です。
よく起きるトラブルは次の5つに分類できます。
- ホスト鍵(known_hosts)の不一致
- OpenSSH クライアントのバージョン問題(Windows)
- Remote - SSH 拡張機能のバージョン不整合
- サーバー側の SSH デーモン停止・設定変更
- ファイアウォール・VPN・ネットワーク変更
原因1: ホスト鍵の不一致(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)
サーバーを再構築したり IP アドレスを変更したりすると、known_hosts に保存された古いホスト鍵と一致しなくなりエラーが出ます。
確認方法
ターミナルで SSH 接続を試み、WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! と表示されたらこれが原因です。
対処法
Windows の場合は C:\Users\ユーザー名\.ssh\known_hosts、Mac/Linux は ~/.ssh/known_hosts を開き、該当ホスト名または IP の行を削除します。
ssh-keygen -R ホスト名またはIPアドレス
このコマンドを実行すると自動で該当行が削除されます。その後 VSCode から再接続すると、新しいホスト鍵を確認する画面が出るので「Yes」を選択してください。
原因2: Windows の OpenSSH バージョン問題
Windows に同梱されている OpenSSH クライアントが古いバージョンの場合、VSCode の Remote - SSH が期待するオプションに対応していないことがあります。特に Windows 10 の古いビルドでよく発生します。
確認方法
PowerShell で以下を実行してバージョンを確認します。
ssh -V
OpenSSH_for_Windows_7.7 以前の場合はアップデートを検討してください。
対処法
「設定」→「アプリ」→「オプション機能」→「OpenSSH クライアント」をアンインストール後、最新版を再インストールします。または Git for Windows に同梱された OpenSSH を使うよう VSCode の設定を変更する方法もあります。
VSCode の settings.json に以下を追加します。
"remote.SSH.path": "C:\\Program Files\\Git\\usr\\bin\\ssh.exe"
原因3: Remote - SSH 拡張機能のバージョン不整合
VSCode 本体や Remote - SSH 拡張機能をアップデートした直後に接続できなくなることがあります。特に、サーバー側にインストールされた VSCode Server のバージョンが古いままになっているケースです。
対処法
SSH 接続後、サーバー上の VSCode Server のキャッシュを削除してから再接続します。
rm -rf ~/.vscode-server
この操作でサーバー側のキャッシュが削除され、次回接続時に最新の VSCode Server が自動インストールされます。インストールには数分かかることがあります。
原因4: サーバー側の SSH デーモン停止・設定変更
サーバーの再起動後に SSH デーモン(sshd)が起動していない、または設定ファイルが変更されてポートや認証方式が変わった場合に接続できなくなります。
確認方法
クラウドコンソールやシリアルコンソールからサーバーにログインし、SSH デーモンの状態を確認します。
sudo systemctl status sshd
対処法
停止している場合は sudo systemctl start sshd で起動します。設定変更が原因の場合は /etc/ssh/sshd_config を確認し、ポート番号・公開鍵認証の許可設定を修正後、sudo systemctl restart sshd で再起動します。
原因5: ファイアウォール・VPN・ネットワーク変更
オフィスのネットワークポリシー変更や VPN の更新後に、SSH ポート(デフォルト 22)への接続がブロックされるケースがあります。
確認方法
ターミナルから直接 SSH 接続を試します。
ssh -v ユーザー名@ホスト名
-v オプションで詳細なログが出力されます。connect to host xxx port 22: Connection timed out と表示される場合はネットワーク・ファイアウォールが原因です。
対処法
クラウドのセキュリティグループやファイアウォール設定で SSH ポートが開放されているか確認します。VPN 接続中の場合は VPN を一時的に切断して試してみてください。
それでも解決しない場合のチェックリスト
- VSCode 本体を最新バージョンにアップデートする
- Remote - SSH 拡張機能を一度アンインストールして再インストールする
- VSCode のユーザーデータキャッシュをクリアする(
Help→Toggle Developer Tools→ Console でlocalStorage.clear()) - SSH Config ファイル(
~/.ssh/config)の設定を確認する - 別のネットワーク(スマホのテザリング等)から接続を試み、ネットワーク起因かを切り分ける
まとめ
VSCode Remote SSH が接続できなくなった場合の主な原因と対処法をまとめます。
- known_hosts のホスト鍵不一致 → 該当行を削除して再接続
- Windows の OpenSSH バージョンが古い → アップデートまたは Git の SSH を使用
- サーバー側の VSCode Server キャッシュ →
~/.vscode-serverを削除 - SSH デーモン停止 → サーバーで
systemctl start sshd - ネットワーク・ファイアウォール → セキュリティグループ・VPN を確認
上記を順番に確認することで、ほとんどのケースは解決できます。システム開発の現場ではリモートサーバーへの SSH 接続は日常的な作業のため、トラブル時の切り分け手順を覚えておくと対応時間を大幅に短縮できます。
この記事をシェア