びぼうろぐ

ネ申エクセルからの卒業

【VS Code】Remote Development (SSH) を試す

VSCodeのVersion 1.35がリリースされ、Remote Development という機能が使えるようになりました。

この機能があればリモートマシン、コンテナ、またはWSLを開発環境として使用使用できるとのことです!早速公式のチュートリアルにしたがって試してみます!

code.visualstudio.com

今回はSSHを使用してリモートマシン上で開発する環境をセットアップしてみます。

環境情報

ローカル側

  • Windows10(1810)
  • VSCode(1.35)

リモート側

  • CentOS7(1810)

SSHクライアントの準備

Win10でもsshは使えるらしいので、これを使って設定します。

# SSHクライアントがインストールされていることを確認
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

# キーペア生成
ssh-keygen -t rsa -b 4096

# 公開鍵をリモートサーバに配置
SET REMOTEHOST=Username@Hostname
scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

VSCode(1.35)のインストール

公式からバイナリを入手する等して最新のVSCodeを取得し、インストールします。 Chocolatey だと以下のコマンドでインストールできます。

choco install vscode

Remote Development のインストール

以下のコマンドを実行し、Remote Development をインストールします。

code --install-extension ms-vscode-remote.vscode-remote-extensionpack

リモートサーバにつなぐ

VSCode を起動し、[Ctrl+Shift+p]からコマンドパレットを開きます。
[Remote-SSH: Connect to Host...]を選択し、接続情報を入力すると...

f:id:uktia:20190608014636p:plain
RemoteDevSSH

[Ctrl+Shift+@]からターミナルを開くとリモートサーバのbashが実行できることが確認できます。

せっかくなのでリモートサーバでGoをインストールし、HelloWorldしてみます。

# golangのインストール
$ sudo yum install -y epel-release
$ sudo yum install -y golang

$ less hello.go
package main

import "fmt"

func main() {
  fmt.Printf("Hello World\n")
}

# 実行
$ go run hello.go
Hello World

まとめ

ローカルのWindows上ではなく、リモートのLinux上に開発環境を構築することができました。