Mac
SSH
sftp
VSCode
VisualStudioCode

Visual Studio Codeでリモート開発環境と完全同期する

この記事は以下の条件に当てはまる人向けに書いています。

  • 開発環境が共用のリモートサーバー
  • リモートにssh(sftp)でログインできる
  • VimじゃなくてVSCodeを使いたい
  • gitrsync samba lsyncdの併用は遅すぎて無理
  • 更新だけじゃなく削除されたファイルも同期したい
  • ローカル→リモートの一方通行でOK (でも削除は検知したい)

ショートカットキーやパスなどMac仕様なのでWindowsの人は適宜読み替えてください。

拡張機能のインストール

sftpを入れる。sftpで検索すると一番上に出てきます。
スクリーンショット 2018-11-09 13.28.28.png

sftpの設定

Command + P>sftp で設定ファイルを作成する。

sftp.json
{
    "name": "foobar",
    "protocol": "sftp",
    "host": "foobar",
    "port": 22,
    "username": "foo",
    "privateKeyPath": "/Users/foo/.ssh/foobar_rsa",
    "remotePath": "/home/foo/bar",
    "ignore": [
        ".vscode",
        ".git",
        ".DS_Store"
    ],
    "sshConfigPath": "/Users/foo/.ssh/config",
    "syncMode": "full",
    "uploadOnSave": true,
    "watcher": {
        "files": "**/*",
        "autoUpload": true,
        "autoDelete": true
    }
}
項目(key) 意味 説明
name 設定名 任意の設定名。省略可能。
protocol プロトコル ftpかsftp。最近はほとんどsftpなのでよく分からなかったらsftpで。
host ホスト リモートサーバーのホスト名。
port ポート リモートサーバーのポート名。sftpならふつうは22。
username ユーザー名 リモートサーバーにログインするユーザー名。
privateKeyPath 秘密鍵のパス リモートログイン用の秘密鍵のパス。パスワードログインの場合はprivateKeyPathではなくpasswordキーに値としてパスワードを直接書く。
sshConfigPath ssh設定のパス こだわり設定がある場合は指定しよう。
syncMode 同期モード updateかfull。完全同期なのでfullを指定。
uploadOnSave 保存時にアップロード trueを指定するとファイル保存時にアップロードが行われる。
watcher.files 監視するファイル VSCode以外からのファイル変更を監視する対象。
watcher.autoUpload 自動更新 VSCode以外から変更された場合にリモートを自動で更新する。
watcher.autoDelete 自動削除 VSCode以外から削除された場合にリモートを自動で削除する。

よいVSCodeライフを♡