Windowsの「Visual Studio Code」に「Remote - SSH」というExtentionをインストールして、リモートのLinux上のファイルを編集しようとしたら意味不明なエラーが出ました。
[14:32:37.168] Log Level: 2 [14:32:37.170] remote-ssh@0.56.0 [14:32:37.170] win32 x64 [14:32:37.172] SSH Resolver called for "ssh-remote+接続したいLinuxマシンのホスト名", attempt 1 [14:32:37.172] SSH Resolver called for host: 接続したいLinuxマシンのホスト名 [14:32:37.172] Setting up SSH remote "接続したいLinuxマシンのホスト名" [14:32:37.188] Using commit id "e5a624b788d92b8d34d1392e4c4d9789406efe8f" and quality "stable" for server [14:32:37.189] Install and start server if needed [14:33:01.718] getPlatformForHost was canceled [14:33:01.722] Resolver error: Error: Connecting was canceled at Function.Canceled (c:\Users\xxx\.vscode\extensions\ms-vscode-remote.remote-ssh-0.56.0\out\extension.js:1:94623) at c:\Users\xxx\.vscode\extensions\ms-vscode-remote.remote-ssh-0.56.0\out\extension.js:127:104886 at processTicksAndRejections (internal/process/task_queues.js:94:5) at async Object.t.withShowDetailsEvent (c:\Users\xxx\.vscode\extensions\ms-vscode-remote.remote-ssh-0.56.0\out\extension.js:127:110096) at async Object.t.resolve (c:\Users\xxx\.vscode\extensions\ms-vscode-remote.remote-ssh-0.56.0\out\extension.js:127:108158) at async c:\Users\xxx\.vscode\extensions\ms-vscode-remote.remote-ssh-0.56.0\out\extension.js:127:143767 [14:33:01.724] ------
解決策
接続先のOSを指定する必要がありました。 qiita.com
以下の設定をsettings.json
に追記したら接続できました。
"remote.SSH.remotePlatform": { "接続したいLinuxマシンのホスト名": "linux" }
後で気づきましたが、接続時にひっそりと以下の選択肢が表示されていました。モーダルダイアログで表示されないので非常に気づきにくいです。
ここでLinux
などをクリックすれば、対応する設定がsettings.json
に追記されます。
というかなんでOSの種類が事前に必要なのか全く意味が分かりませんね。sshで接続した後でOSの種類を調べるのは容易だと思います・・・。
ちなみに、他に気になった点として、Visual Studio CodeのRemote SSHで接続すると、sshのセッションだけでなく 接続先のホスト上で勝手にnodeのプロセスが立ち上げられます。nodeが必要ということはAlpine LinuxなんかのミニマムなLinuxでは動作しないでしょう。 なぜかVisual Studio Codeはローカルではなくホスト側でExtentionを実行する仕様らしいです。Extentionの管理画面もローカルとホストが分けられています。なんでそんな仕様なんだ・・・。
それと、このnodeプロセスが結構メモリを消費するので、スペックの低い最小構成のマシンにRemote SSHするのも難しそうです。
というわけで「Visual Studio Code」で「Remote - SSH」を使ってみましたが、私の期待したものとはちょっと違っていました。結局代わりに「SSH FS」というExtentionを使用することにしました。 qiita.com