この記事は以下の条件に当てはまる人向けに書いています。
- 開発環境が共用のリモートサーバー
- リモートにssh(sftp)でログインできる
- VimじゃなくてVSCodeを使いたい
-
gitとrsyncsambalsyncdの併用は遅すぎて無理 - 更新だけじゃなく削除されたファイルも同期したい
- ローカル→リモートの一方通行でOK (でも削除は検知したい)
- 純正のリモート同期が使えない事情がある
ショートカットキーやパスなどMac仕様なのでWindowsの人は適宜読み替えてください。
拡張機能のインストール
sftpを入れる。sftpで検索すると一番上に出てきます。

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",
"syncOption": {
"delete": true,
"skipCreate": false,
"ignoreExisting": false,
"update": false
},
"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設定のパス | こだわり設定がある場合は指定しよう。 |
| syncOption.delete | 同期オプション(delete) | 削除を同期するか。 |
| syncOption.skipCreate | 同期オプション(skipCreate) | 新規作成ファイルをスキップするか。 |
| syncOption.ignoreExisting | 同期オプション(ignoreExisting) | 既存ファイルの更新をスキップするか。 |
| syncOption.update | 同期オプション(update) | ローカル側が新しい場合のみ上書き更新する。 |
| uploadOnSave | 保存時にアップロード | trueを指定するとファイル保存時にアップロードが行われる。 |
| watcher.files | 監視するファイル | VSCode以外からのファイル変更を監視する対象。 |
| watcher.autoUpload | 自動更新 | VSCode以外から変更された場合にリモートを自動で更新する。 |
| watcher.autoDelete | 自動削除 | VSCode以外から削除された場合にリモートを自動で削除する。 |
よきVSCodeライフを♡