LoginSignup
6
7

More than 3 years have passed since last update.

Visual Studio Codeの新規拡張機能のRemote Developmentを試した

Posted at

記事の目的

Remote Developmentを導入にあたって、何点か障壁があったので、共有しようと思います。先に言うと、ホスト側のログインシェルがcsh(tcshも?)では使えません。結局、私は導入できませんでした。

Remote Developmentについて、ここでは説明しません。下記URLで説明されているので参考にしてください。
https://forest.watch.impress.co.jp/docs/news/1183384.html

Remote Development導入の動機

現状の開発では、Windowsでコーディングして、ソースコードをscpでLinuxに送ってbuildしています。さらに、ソースコード管理にgitを使っているので、branchを切り替えたりすると、WindowsとLinuxでたまに同期がうまくとれない場合があり、少々不便でした。できれば、ソースコードは1ヶ所に置きたいと思っており、今回Visual Studio Codeの拡張機能のRemote Developmentを試してみようと思いました。

導入手順

Visual Studio Code Insidersのインストール

ここからダウンロードして、インストールします。
https://code.visualstudio.com/insiders/

Remote Developmentのインストール

Visual Studio MarketplaceからRemote Developmentを検索して、インストールします。このとき、Remote SSH等も一緒にインストールされます。

接続先の設定

Remote DevelopmentをインストールするとVisual Studio Codeの左側にあるアクティビティーバーにサーバに接続しそうなアイコンが追加されるのでクリックします。すると、アクティビティーバーのすぐ右画面にサイドバーが出ます。そこにCONNECTIONタブがあり、その右のほうに設定のアイコンがあるのでクリックすると、設定ファイルを選択できるようになります。ここでは"C:¥User¥username¥.ssh¥config"をクリックします。
エディタで下記のようにHostname等を入力しましょう。これで保存するとサイドバーにあるCONNECTIONにhogeが追加されます。

config
Host hoge
    Hostname hostname
    user username

SSHクライアントのインストール

hogeをクリックするとSSHしようとするのですが、その前にSSHクライアントを下記の方法でインストールする必要があります。
https://code.visualstudio.com/docs/remote/troubleshooting#_installing-a-supported-ssh-client
補足すると、まずWindows10とWindows7で方法が違います。Windows10ではOSの機能としてON/OFFできて、おそらくデフォルトでONになっています。Windows7ではGit for windowsをインストールして、PATHをはればOKです。

SSH接続

私の環境ではSSH接続しようとすると、SSHクライアントが途中で落ちる?ような状態となってしまい、このままでは実行できませんでした。これは一度、ターミナルでSSHして、RSA key fingerprintを作成しておけば解消されます。
これでCONNECTIONのhogeをクリック(hogeの右側にでるアイコンでないとダメかも)するとSSH接続がはじまって、Visual Studio Codeの右下に"ⓘ Confirming that hoge is reachable ..."とポップアップがでます。
私はここでつまづいたのですが、これを待っているだけでは接続できません。Visual Studio Codeの統合ターミナル(bash, powershellになっている?)をunameに変更して、"username@hostname's password:"と出力されているので、パスワードを入力します。これで接続!...できるはずでしたが、現実は甘くはありませんでした。

ログインシェルの制約

私の場合は接続できず、下記のようなWarningが出力されました。このWarningはcshとtcshで出力されるらしく、ログインシェルの変更が必須になるようです。私の環境ではログインシェルの変更ができず、泣く泣くRemote Developmentの導入は諦めました。残念です。

Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.

もう一つ問題

私の環境ではもう一つ上手くいかないことがありました。
SSH接続の際、"C:¥Users¥username¥AppData¥Local¥Temp"にあるファイルを参照するのですが、このPathが間違って読み込まれているようでした。

エラーを追っていくと、"C:¥Users¥username¥.vscode-insiders¥extensions¥ms_vscode-remote.remote-ssh-x.xx.x¥out¥extension.js"のprocess.env.TEMPがうまく読み込めていませんでした。

システム変数をcallしているのですが、システム変数TEMPには"C:¥Users¥username¥AppData¥Local¥Temp"が与えられ、間違っていませんでした。設定の変更では回避できずに、process.env.TEMPの箇所に直接、"C:¥Users¥$username¥AppData¥Local¥Temp"を記載して(extension.js修正後、マシンの再起動要)、なんとか動かせました。ログインシェルの問題で、結局動かせなかったのですが...

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7