Posted at

CentOS8でVSCodeでRemote開発できるようにする


はじめに

VirtualBoxにCentOS8をインストールして、VSCodeで Remote - SSH で繋ぐまでの流れをここに記します。

インストールしたCentOS8のソフトウェアは『最小限のインストール』を選択しています。

インストールするときの注意点は、全てのネットワークにちゃんと『この接続が利用可能になったときに自動的に接続する』のチェックを付けることです。

また、インストール完了後にドライブの自動アンマウントがされていないので、手動でアンマウントすることを忘れないでください。おそらく、インストール完了の再起動で、再びインストール選択画面になります。


VSCodeのRemote開発までにしておきたい準備


  • 公開鍵認証によるSSHログイン


    • Remoteログインの簡略化のため



  • sudo権限を付与


    • 開発時に必要になることが予想されるため



  • インストールパッケージの更新


    • 脆弱性などへの対応のため




公開鍵認証によるSSHログイン


(クライアント)鍵の準備

ssh-keygen -t rsa -f ~/.ssh/develop_rsa

scp ~/.ssh/develop_rsa.pub develop:.


(サーバー)公開鍵を登録

mkdir ~/.ssh

cat develop_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

一度ログアウトして、パスワード無しでログインできることを確認してください。


sudo権限の付与

まずは、rootユーザーに su - でログインします。

ログインが完了したら、対象のユーザーに wheel グループを付与します。

gpasswd -a develop wheel

groups develop

グループの付与が完了したら、一度sshからもログアウトして、再度sshでログインしてください。

その後、 wheel グループが付与されていることを確認してください。


インストールパッケージの更新

sudo dnf update

おそらくカーネルもアップデートされていると思うので、再起動します。

カーネルのデフォルトに指定されているものを sudo grubby --default-title で確認しておきましょう。

新たにインストールされたカーネルのバージョンが指定されているはずです。


VSCodeのRemoteSSHを試す

もし、VSCodeの拡張機能として Remote - SSH をインストールしていない場合は、インストールしてください。

左側にあるActivityBar内にあるRemoteExplorerから、 develop にアクセスしてみましょう。

すると、エラーとなり、アクセスできないことと思います。

そのエラーをこれから解決していきましょう。


tar がない

実際にアクセスしてみると、以下のようなログが出力されて、エラーになります。

remote-ssh@0.46.1

win32 x64
SSH Resolver called for "ssh-remote+develop", attempt 1
SSH Resolver called for host: develop
Setting up SSH remote "develop"

(中略)

> Installing to /home/develop/.vscode-server/bin/b37e54c98e1a74ba89e03073e5a376128
> 4e3ffb0...
>
> Downloading with curl

(中略)

> Download complete
> bash: 行 188: tar: コマンドが見つかりません
> mv: 'vscode-server-linux-x64*/*' を stat できません: そのようなファイルやディレ
> クトリはありません
> WARNING: tar exited with non-0 exit code
> WARNING: /home/develop/.vscode-server/bin/b37e54c98e1a74ba89e03073e5a3761284e3ff
> b0/node doesn't exist. Download/untar may have failed.
> WARNING: /home/develop/.vscode-server/bin/b37e54c98e1a74ba89e03073e5a3761284e3ff
> b0/server.sh doesn't exist. Download/untar may have failed.

(中略)

"install" terminal command done
Install terminal quit with output: a3cf400d-2c9d-47b9-8a86-bd67fcc560d4##32##
Received install output: a3cf400d-2c9d-47b9-8a86-bd67fcc560d4##32##
The VS Code Server failed to start
TELEMETRY: {"eventName":"resolver","properties":{"outcome":"failure","reason":"ExitCode"},"measures":{"resolveAttempts":1,"exitCode":32,"retries":1}}
------

このログによると、エラーの原因は tar コマンドがないことです。

どうやら『最小限のインストール』を選択してインストールをすると、 tar パッケージがインストールされていないようです。

なので、 tar パッケージをインストールすれば解消されます。

sudo dnf install tar

tar のインストールが完了すれば、RemoteSSHをもう一度試してみましょう。

アクセスできる状態になっていることと思います。