いしぐめも

プログラミングとかしたことを書きます。

プロキシ環境下でのVisual Studio Code Remote SSH の導入

プロキシ環境下で改めて Visual Studio Code の Remote SSH を使おうと思ったらドハマリしたのでメモ。

はじめに

以前はそんなことなかったと思うんですが、VSCodeの便利な拡張機能「Remote SSH」を使用しようとしたらリモート側のサーバー .vscode-server のダウンロードが以下のエラーとともに失敗するようになりました。

Server returned 404

Resolver error: Error: Server returned 404

今まではできたが・・・

私の認識では今までは、

  • ~/.bashrchttp_proxy https_proxy 環境変数をセットするように記載する
  • ~/.wgetrc にプロキシ設定を記載する

のどちらかでダウンロードできない問題を回避できた記憶があるんですが、もしかしてできなくなりましたかね??

ssh -T が曲者っぽい??

ログ見ると、環境変数にそもそもプロキシ設定が入っていないようでした。

さらによく見ると ssh -T -D $PORT $HOST bash となっていて、non-interactiveなシェル でログインしてるっぽいです。 で、non-interactiveなせいかは不明ですが、手動で -T オプションをつけて接続してみると同様に環境変数にプロキシ設定が入っていません。

個人的にはここらへんが怪しいのかなと思いましたが、ただ、それだと ~/.wgetrc も効かないのはなぜ?という感じで、原因究明は無理そうだなと思い力技で解決しました。

対処方法(正しいかは不明)

/etc/environment に以下を書き込みました。

http_proxy=http://user:pass@host:port/
https_proxy=http://user:pass@host:port/

そしていったん前回までの試行で発生したごみを削除。

rm -r ~/.vscode-server

再度 Remote SSH による接続を試します。

終わりに

これにてとりあえずは解決としてしまったのですが、なんとも気持ち悪い感じになってしまったなと思います。

というのも、 /etc/environment にユーザーIDパスワード含む文字列が入ることになるためです。これだと複数ユーザーが使用するサーバーでは使用できなくなりますし考え物だなと思いました。

そもそも ssh の 「-T オプション」で接続したときにユーザー固有の環境変数を設定する方法が分かれば苦労しないのですが…

あんまり苦労しない方法でこれを解決できる方法をご存知の方がいらっしゃったら教えてください。