【VS Code】SSH接続が突然「EISDIR: illegal operation on a directory」で失敗した時の対処法

この記事は約5分で読めます。
この記事が役立ったらブックマーク! あとで読み返したり、環境構築時のリファレンスに活用できます
B! はてなブックマークに追加

VS Codeをアップデートした直後、急にSSH(Remote – SSH)でサーバーに繋がらなくなって焦った経験はありませんか?
「さっきまで普通に使えていたのに、なぜか接続が切れて再接続できない…」
画面右下には 「”ホスト名” への接続を確立できません」 という無情なアラート。
出力ログ(Remote – SSH)を確認してみると、こんなエラーが吐かれていることがあります。

Plaintext
Failed to read SSH configuration file '/': Error: EISDIR: illegal operation on a directory, read

一見するとサーバー側の障害やネットワークトラブルを疑ってしまいますが、原因はVS Code本体の「設定ファイルの参照パス誤り」にあります。

この記事では、この EISDIR エラーが発生する原因と、5分で確実に復旧するための3つのステップ をわかりやすく解説します!

なぜ起きる? EISDIR エラーの正体

EISDIR とは Node.js のエラー用語で 「Error: Is a Directory(指定されたパスがファイルではなくディレクトリです)」 を意味します。
つまり、VS Code が SSH の接続設定ファイル(config)を読み込もうとした際、「設定ファイルを探したら、ファイルではなく /(ルートディレクトリ)が指定されていた」 ために処理が停止してしまっているのが原因です。
VS Code の本体アップデートや設定同期(Settings Sync)の不具合により、Remote.SSH: Config File の項目に誤って / が入ってしまうことでこの現象が発生します。

【完全復旧】3ステップで解決する手順

復旧作業は非常に簡単です。以下の3ステップを順番にお試しください。

STEP 1: VS Code の configFile 設定を空欄にする

一番の根本原因である「設定ファイルの誤指定」を修正します。

  1. VS Code で Ctrl + ,(Macは Cmd + ,)を押して 設定(Settings) を開く。
  2. 上部の検索窓に remote.SSH.configFile と入力。
  3. Remote.SSH: Config File の入力欄に入っている / を削除して空欄 にする。

💡 補足:
ここを空欄にしておくと、VS Code はデフォルトの SSH 設定ファイル(Windows: C:\Users\<User_name>\.ssh\config / Mac・Linux: ~/.ssh/config)を自動的に参照してくれるようになります。

STEP 2: サーバー側のキャッシュを初期化する

設定を直しても接続がうまくいかない場合、サーバー側に残っている古い vscode-server のプロセスやキャッシュが干渉している可能性があります。
Tera Term、macOS標準ターミナル、または既存の別SSHクライアントからサーバーにログインし、以下のコマンドでキャッシュを更地にします。

Bash
# サーバー側の管理用隠しフォルダを削除
rm -rf ~/.vscode-server

# 残存プロセスを確実にキル
pkill -f vscode-server
Bash
# Remove the hidden VS Code management directory on the server
rm -rf ~/.vscode-server

# Forcefully terminate any remaining VS Code server processes
pkill -f vscode-server

STEP 3: VS Code を再起動して再接続する

最後に、ローカル環境のクリーンアップを行って接続を試みます。

  1. PC側で開いている VS Code を完全に終了(ウィンドウをすべて閉じる)して再起動。
  2. 画面左下の ><(Remoteステータスバー)をクリックし、「ホストに接続する (Connect to Host…)」 を選択。
  3. 目的のサーバーを指定して接続。

無事にサーバーへ入れたら、ファイル ➔ フォルダーを開く から作業したいディレクトリ(/ や /var/www/html など)を指定すれば復旧完了です!

まとめ

VS Code のアプデ直後に EISDIR: illegal operation on a directory が出た場合のチェックポイントまとめです。

  • 原因: 設定 remote.SSH.configFile に / が紛れ込み、設定ファイルとしてフォルダを読み込もうとしている。
  • 対処1: VS Code 設定で remote.SSH.configFile を空欄にする。
  • 対処2: サーバー側で rm -rf ~/.vscode-server を実行してキャッシュをクリア。

「サーバーが落ちたのかも!?」と焦りがちなエラーですが、原因はローカル側のパス指定ミスであることがほとんどです。同じ症状で困った時はぜひ試してみてください!

コメント

タイトルとURLをコピーしました