「Visual Studio Code Remote – SSH」を使ってCentOS Stream release 8リモートサーバにSSHで接続する。

2021年8月15日

Visual Studio Code Remote – SSHについて

Visual Studio Code Remote – SSH(日本語訳)

ドキュメントが全部英語なので日本語訳したものを引用します。

Visual Studio Code Remote – SSHリモート-SSH拡張機能を使用すると、開発環境としてSSHサーバーを備えた任意のリモートマシンを使用できます。 これにより、さまざまな状況での開発とトラブルシューティングを大幅に簡素化できます。

  • 展開するのと同じオペレーティングシステムで開発するか、ローカルマシンよりも大きく、高速で、より特殊なハードウェアを使用します。
  • 異なるリモート開発環境間ですばやく交換し、ローカルマシンへの影響を心配することなく安全に更新を行います。
  • 複数のマシンまたは場所から既存の開発環境にアクセスします。
  • 顧客サイトやクラウドなど、別の場所で実行されているアプリケーションをデバッグします。

拡張機能はコマンドやその他の拡張機能をリモートマシンで直接実行するため、これらの利点を得るためにローカルマシンにソースコードを配置する必要はありません。 リモートマシン上の任意のフォルダを開いて、そのフォルダが自分のマシンにある場合と同じように操作できます。

SSHホストの要件

次のプラットフォームで実行中のSSHサーバーに接続できます。

サポート:

  • x86_64 Debian 8以降、Ubuntu 16.04以降、CentOS / RHEL7以降のLinux。
  • ARMv7l(AArch32)Raspbian Stretch / 9+(32ビット)。
  • ARMv8l(AArch64)Ubuntu 18.04+(64ビット)。
  • 公式のOpenSSHサーバーを使用するWindows10 / Server 2016/2019(1803+)。
  • macOS 10.14+(Mojave)リモートログインが有効になっているSSHホスト。

x86_64、ARMv7l(AArch32)、およびARMv8l(AArch64)用の他のglibcベースのLinuxディストリビューションは、必要な前提条件があれば機能するはずです。コミュニティでサポートされているディストリビューションを稼働させるための前提条件とヒントについては、Linuxを使用したリモート開発の記事を参照してください。

ARMv7l(AArch32)およびARMv8l(AArch64)のサポートは利用可能ですが、これらのデバイスにインストールされている一部の拡張機能は、拡張機能でx86ネイティブコードを使用しているために機能しない場合があります。

インストール

  1. VSCodeまたはVSCode-Insiderとこの拡張機能をインストールします。
  2. OpenSSH互換のSSHクライアントをインストールします。
  3. SSHホストを設定していない場合は、Linux、Windows 10 / Server(1803+)、またはmacOSの指示に従うか、AzureでVMを作成します。

Getting started

ステップバイステップのチュートリアルに従うか、単純なSSHホストのセットアップがある場合は、次のように接続します。

  1. F1を押して、Remote-SSH:Open SSH Host …コマンドを実行します。
  2. 表示される入力ボックスにユーザーとホスト/ IPを次の形式で入力し、Enterキーを押します:user@host-or-ipまたはuser@domain @host-or-ip
  3. プロンプトが表示されたら、パスワードを入力します(ただし、キーベースの認証を設定することをお勧めします)。
  4. 接続したら、[ファイル]> [フォルダを開く]を使用して、ホスト上のフォルダを開きます。

F1キーを押してコマンドパレットを表示し、> Remote-SSH と入力して、使用可能なコマンドの完全なリストを表示できます。

左下隅にあるリモートの[クイックアクセス]ステータスバー項目をクリックして、最も一般的なコマンドのリストを取得することもできます。

詳細については、拡張機能のドキュメントを参照してください。

追加の情報を得る

サーバ・クライアント構成

つまり、編集対象のファイルがあるサーバにも「VS Code Server」がインストールされます。

SSHホスト「CentOS Stream release 8」の準備

サーバ:CentOS Stream release 8

パッケージ構成:最小構成

ssh関連のパッケージがインストール済みであることを確認(インストールされていなければインストールします。)

 [root@vm02 ~]# dnf list installed | grep ssh
libssh.x86_64 0.9.4-3.el8 @baseos
libssh-config.noarch 0.9.4-3.el8 @baseos
openssh.x86_64 8.0p1-9.el8 @baseos
openssh-clients.x86_64 8.0p1-9.el8 @baseos
openssh-server.x86_64 8.0p1-9.el8 @baseos 

ローカルの「 Visual Studio Code 」の操作

1、VSCodeで拡張機能の「Remote-SSH」をインストールします。

① SSH: Editing Configuration Filesがとも連れでインストールされます。
② 「リモートエクスプローラー」メニューが表示されます。
③ 「リモートウィンドウを開きます」ボタンが表示されます。

リモートへの接続には様々なアプローチがあります。

A)コマンドパレット(ctrl+shifut+P)からの起動

コマンドパレットを開き「Remote-SSH」と入力すると選択可能なオプションが一覧で表示されます。

B)「リモートウィンドウを開く」からの起動

C)「リモートエクスプローラー」メニューからの起動

サーバにアクセスします。

① B)の「リモートウィンドウを開く」をクリックします。

② コマンドパレットに候補が表示されますので「Connect to Host…」を選択します。

③ 「+ Add New SSH HOST…」を選択します。

④ 表示される “Select configured SSH host or enter user@host" で「+ Add New SSH HOST…」を選択します。

⑤ "Enter SSH Connectiuon Command" で「ssh hello@microsoft.com -A」の形式でコマンドを入力してEnterを押下します。

 ssh root@192.168.0.170 -A 

⑥ "Select SSH configuration file to update" で「C:\Users\sample\.ssh\config(お使いの環境によりPathは異なります。)」を選択します。

⑦ リモートエクスプローラーに接続先ホストが表示されますので接続先ホストを選択して右クリックします。

⑧ "Connect to Host in New Window" を選択すると新しいVSCodeのウィンドウが起動します。

⑨ 新しく起動したVSCodeでは"Enter password for root@192.168.0.170″ と表示されます。ログインパスワードを入力してEnterを押下します。

⑩ 「Could not establish connection to “192.168.0.170"」がポップアップされました。

 POINT

VSCodeの「出力」を確認すると

 tar: コマンドが見つかりません 

とのmsgが見受けられましたのでリモートホストにtarをインストールします。

 [root@vm02 ~]# dnf list installed | grep tar
tar.x86_64 2:1.30-5.el8 @baseos 

⑪ 再度接続してみます。

⑫ 2回目のパスワードの入力が求められましたので入力してEnterを押下します。

⑬ 「リモートエクスプローラー」メニューに 192.168.0.170 が表示され、緑色のチェックマークが表示されていることからSSHでの接続は成功しています。

リモートホストのフォルダ内を見る

① エクスプローラーメニューで「フォルダーを開く」

② "フォルダーを開く"画面にログインユーザのルートディレクトリが表示されます。必要があれば変更しますが今回は変更せずに接続しますので「OK」を押下します。

③ 再度パスワードを求められますので入力してEnterを押下します。

④ エクスプローラーメニューにフォルダツリーが表示されます。

・・・ここまでとなります。