コンテンツにスキップ

【VSCode】SSH で zsh が見つからずエラーが出る時の対処法

Homebrew から Devbox の zsh へ移行した後、VSCode のターミナルと Remote-SSH 拡張で zsh が見つからずエラーになった。SHELLの上書きでは再発したため、最終的には Homebrew で zsh を再インストールして回避した。

状況

  • Homebrew で zsh をインストールしていたが、Homebrew を辞めて Devbox でインストールした zsh を使うようになった
  • VSCode のターミナルから ssh コマンドを実行した時と Remote-SSH 拡張を使ってリモートサーバに接続しようとした時にエラーが出る
    • 実行すると Homebrew の zsh path が見つからないというエラーが出る
  • Mac のターミナルから ssh コマンドを実行すると問題なく接続できた
  • VSCode のターミナルで$SHELLを確認すると Homebrew の zsh path が設定されている
  • ~/.zshrcに$SHELLを上書きする設定をしても解決しない

SHELL の上書きでは一時的に解消

VSCode の設定で変数設定を上書きすることで解決した。 settings.jsonに次の設定を追加する。

1
2
3
  "terminal.integrated.env.osx": {
    "SHELL": "<path to zsh>"
  }

再発と最終的な回避策

上記の方法で解決できたと思ったが、再発した。関連する issueが 2019 年に開かれており、2024 年末現在も解決されていない。エラー内容が brew の zsh path が見つからないというものであるため、brew で zsh をインストールして問題を解決した。

試した方法と結果をまとめると、次のようになる。

試した方法 結果
Devbox でインストールした zsh を使う エラーが出る
settings.jsonでSHELLを上書き 一時的に解決するが再発する
Homebrew で zsh を再インストール 解決した