LoginSignup
5
3

More than 3 years have passed since last update.

Vim が辛すぎるから VS Code で Linux に SSH してファイル操作する

Posted at

Image from Gyazo

Azure VM や AWS EC2 に SSH 接続してコマンド上でファイル操作するのは大変じゃないですか? Vim に慣れていないとコマンドを検索するだけで時間がかかってしまいます。そんなときは MS が提供している Remote Development 拡張機能を使いましょう!

インストール

vscode の拡張機能から Remote Development をインストールします。
SSH 接続用の Remote - SSH や、 Container 接続用の Remote - Containers も一緒にインストールされます。

Image from Gyazo

使い方

公式ドキュメントの Developing on Remote Machines using SSH and Visual Studio Code を見るのが一番よいのですが、ざっくりと簡単に説明します。

前提条件

SSH Config (~/.ssh/config) に接続情報を設定します。

Windows は PowerShell を管理者で開いて SSH Agent をインストール&起動してください。 SSH Key にパスフレーズがついている場合、これがないと動きません。

# Make sure you're running as an Administrator
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent

使い方

左側の Remote-SSH を開きます。接続情報の一覧が表示されます。

Image from Gyazo

接続先をクリックします。接続が完了すると左下に接続しているホスト名が表示されます。※画像は Remote Development の readme.md からの引用です。

Image from Gyazo

ファイルエクスプローラからフォルダを開いて、あとは煮るなり焼くなり自由にファイル操作してください。

QA (使ってて困ったこと)

Q1. root ユーザーなどに切り替えができないけどどうしたらよい?

A1. SSH 接続したあとに vscode の terminal を開いて、 terminal からコマンドを打ってください。 cp コマンドなどでファイルを自分の作業フォルダに持ってくれば、 vscode でファイル編集できます。

Issue Changing User on Remote Machine · Issue #690 · microsoft/vscode-remote-release · GitHub に上がっているので、そのうち RemoteCommand を SSH Config の設定にかけるようになって terminal からの作業が減ると思います。

Q2. 踏み台がある場合はどうしたらよい?

A2. こんな感じで SSH Config を書いてあげれば接続できます。気をつける点は ProxyJump ではなく ProxyCommand を使うことと、 Windows の場合は ssh.exe をこんな感じできちんとパスで書いてあげる (ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -W %h:%p jump-box) ことです。

Host jump-box
  HostName <jump box address>
  IdentityFile ~/.ssh/jump-box
  User <user>

Host target-machine
  HostName <same address as tagret-machine>
  IdentityFile ~/.ssh/target-machine
  User <user>
  ProxyCommand ssh -q -W %h:%p jump-box
5
3
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
5
3