LoginSignup
14
21

More than 3 years have passed since last update.

VSCodeでSSH開発(RemoteDevelopment)

Last updated at Posted at 2019-08-04

目的

VSCodeのRemoteDevelopment機能を利用すると、SSHで接続したサーバ内のファイルをSSHクライアント側のVSCodeで編集できるらしい。
ホストOSのWin10は綺麗なままで、ゲストOSにAnacondaなどインストールし開発できるかトライしたく、まずはVSCodeでの接続にチャレンジ。

  • Windows10: ホストOS。SSHクライアント。
  • Ubuntu19.04: Win10のHyper-V上に建てたゲストOS。SSHサーバ。

参考にしたのは下記ページ
https://blog.masahiko.info/entry/2019/06/15/202003

Windows10でのSSH

Win10 1803より標準機能としてOpenSSHが利用できるようになったとのこと。
Hyper-V上のUbuntuにSSH接続し、VSCodeでリモート開発するためにまずはOpenSSHで環境準備をする。

SSHサーバの設定

UbuntuにしろWin10(1803以降)にしろ、デフォルトでSSHクライアントとしての機能は有効化されていることが多いが、SSHサーバ機能は自身でインストールが必要である。
今回はUbuntuをSSHサーバとするため、下記コマンドを投入。

bash
$sudo apt-get install openssh-server

OpenSSHでの鍵生成

Win10 1803以降ではOpenSSHが標準機能として利用できるようになっている。
PowerShellで以下コマンドを投げ、鍵ペアを生成する。

PowerShell
PS C:\Users\hoge> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\hoge/.ssh/id_rsa): [未入力EnterOK, 多分鍵名を指定する部分]
Created directory 'C:\Users\hoge/.ssh'.
Enter passphrase (empty for no passphrase): [秘密鍵にパスフレーズを設定する]
Enter same passphrase again: [もう一度パスフレーズを投入]
Your identification has been saved in C:\Users\hoge/.ssh/id_rsa.
Your public key has been saved in C:\Users\hoge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:[ハッシュ値が表示される] hoge@DESKTOP-XXXX
The key's randomart image is:

SSHサーバへの鍵の転送

PowerShellへのコマンドを投げ、SSHクライアント(Win10)からSSHサーバ(Ubuntu)へ公開鍵id_rsa.hogeを送る。

PowerShell
PS C:\Users\hoge> scp C:\Users\hoge\.ssh\id_rsa.pub hoge@[SSHサーバのIPアドレス]:~/.ssh/authorized_keys

configファイルの作成

上記の手順で%USERPROFILE%配下にフォルダ.sshが生成されているはず。C:\Users\hoge\.ssh\configというファイルを作成する。

config
Host [任意の名前]
    HostName [接続先SSHサーバのIPアドレス]
    User [SSHサーバにログインするためのユーザ]
    IdentityFile C:\Users\hoge\.ssh\id_rsa #秘密鍵のパス
#ポート番号は指定しなくても接続できた。

VSCode-Insidersのインストール

2019.08時点ではSSH開発機能Remote Developmentは、インサイダー版でしか利用できないとのこと。そのためVSCode-Insidersをインストールする。安定版と共存可能なので安心。(インサイダー版はアイコンが緑!)
https://code.visualstudio.com/insiders/

※補足
一応、安定版VSCode Ver1.36以降でも対応しているらしいが、接続の際の挙動が不安定のため(何回も秘密鍵のパスフレーズを求められたり)、インサイダー版を紹介。

Remote Developmentの設定

VSCode-InsidersのExtensions(Ctrl+Shift+X)Remote Developmentと検索し、拡張機能をインストール。
Remote Developmentをインストールすると下記機能がすべて使えるようになる(らしい)。

  • Remote-SSH
  • Remote-Containers
  • Remote-WSL

VSCode-Insiders, 最大の罠

VSCode-Insidersの設定(Ctrl+,)Remote SSHで検索。
以下設定にチェックを入れる。

Remote.SSH: Show Login Terminal
Always reveal the SSH login >terminal

秘密鍵にパスフレーズを設定している場合、このチェックが無いとうまくいかないとどこかで読んだ気がするがあまり覚えていない

Remote-SSH接続

準備は完了したので、VSCodeサイドバーからRemote-SSHを選択する。configファイルに書き込んでいるホスト名が表示されているはずなので接続する。
別ウィンドウが立ち上がってくるので、秘密鍵のパスフレーズを入力、さらにUbuntuユーザのログインパスワードを入力することで接続完了。

まとめ

とりあえずVSCodeでの接続はうまくいった。今後はゲストOS側にAnacondaなどをインストールし、ホストOS側からちゃんと動かせるかを確認していきたい。
これができれば最終的には、持ち出し用の軽いPCから使い慣れたエディタで家のサーバをいじれるのでは!など夢が広がる~。

14
21
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
14
21