Edited at

LinuxにあるVSCodeの環境をWindowsのVSCodeから使いたいなーって。


VSCode Remote Development

っていうのが最近(?)追加されましたね。

こいつで既にある環境をWindowsのVSCodeから使ってみたいです。

LinuxとWindowsは別々のパソコンに入ってる状態です。

デュアルブート環境とか、WSLとかじゃないです。


VSCode Insiders版のインストール

クライアント側のみインストールするので、今回の場合はWindows側にのみインストールします。

接続先には、VSCodeからSSH接続した際に自動的にインストールされるようです。


環境

クライアント : Windows 10 Home

サーバー : Manjaro Linux


Linux

AURにあります

image.png


Windows

Download Visual Studio Code Insiders


拡張のインストール

Remote Developmentをインストールしたら他の拡張も同時にインストールされるようです。

image.png


Linux側のSSH設定

$ cd /etc/ssh

$ sudo vim sshd_config

ファイルの末尾に以下を記述する。


sshd_config

# ----------------------------------

# My Settings
# ----------------------------------
Port 22
PermitRootLogin no
PasswordAuthentication yes
# ----------------------------------

$ systemctl start sshd.service

$ systemctl status sshd.service
● sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-06-17 17:14:55 JST; 13s ago
Main PID: 5504 (sshd)
Tasks: 1 (limit: 4915)
Memory: 1.6M
CGroup: /system.slice/sshd.service
└─5504 /usr/bin/sshd -D

Jun 17 17:14:55 hiroya-pc systemd[1]: Started OpenSSH Daemon.
Jun 17 17:14:55 hiroya-pc sshd[5504]: Server listening on 0.0.0.0 port 22.
Jun 17 17:14:55 hiroya-pc sshd[5504]: Server listening on :: port 22.

接続先(Linux側)のIPアドレスも調べておきましょう。IPアドレスは使用しているネットワークデバイスのinetの部分です。

$ ifconfig


SSH ホストの追加

拡張をインストールすることにより、右側にアイコンが増えます。

ConfigureからSSH ホストを追加します。

image.png


  • C:\Users\User.ssh\config

  • C:\ProgramData\ssh\ssh_config

が選べるようですが、C:\ProgramData\ssh\ssh_configにしておきました。


ssh_config

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config

Host Manjaro-Linux-Hiroya
HostName 192.168.3.10
User hiroya

ファイルを保存すると一覧に表示されるようになりました。


接続


ログインターミナルの表示

Ctrl + Shift + Pでコマンドパレットを開き、Remote-SSH:Settingsを開く。

Remote.SSH:Show Login Terminalっていうのがあるので、Always reveal the SSH login terminalにチェックをいれておく。

これをしないと、いつまで経っても表示が切り替わらなくて悩みました。パスワードいれなきゃダメなんだから当たり前ですよね。


いざ

名前の右側にConnect to Host in New Windowってボタンがあるので、ポチ。

Manjaro-Linux-Hiroya has fingerprintって表示とハッシュが表示されるのでContinueで。(認証鍵?なのかな?一回だけで次からは表示されなくなりました)


公開鍵と秘密鍵の生成

gitをインストールしておくと、ssh-keygen.exeがあるようなので、それを使って生成します。

Remote Developmentでは、パスワードを頻繁に要求されるので、認証鍵の設定をした方がいいような気がします。

してください。

VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】より引用。


SSHパスワード認証で使うには?

VSCodeの設定でremote.SSH.showLoginTerminalを有効にする事で、パスワードを入力してログインができます。

ただしWindow Reload等のたびにパスワード入力を要求されるため、鍵認証を推奨します。


PS C:\Users\HIRO> ssh-keygen.exe

Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\HIRO/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\HIRO/.ssh/id_rsa.
Your public key has been saved in C:\Users\HIRO/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:
The key's randomart image is:
+---[RSA 2048]----+
+----[SHA256]-----+


ssh_config

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config

Host Manjaro-Linux-Hiroya
HostName 192.168.3.10
User hiroya
IdentityFile C:\Users\HIRO\.ssh/id_rsa


機能


接続先のターミナル

VSCodeのNew Terminalをクリックすれば、ターミナルが起動できます。なので、コマンド操作もVSCode上でできるって感じですね。

zshのテーマとかもちゃんと適応されて表示されますね。すごい。

ただ、文字化けしてる(おそらくフォントが違う)のでそこだけ修正します。

image.png


作業フォルダを開く

FileからOpen Folder、コマンドパレットからOpen Folderどちらでも接続先のディレクトリの候補が表示され、いつもどおりに作業できます。

など。気づいたものは追記でまとめます。

まずは、拡張機能をインストールしてPythonとLatexの環境を整えようと思います。