見出し画像

VS Codeで作ったファイルを直接リモートサーバーに同期したい

(備忘録)

sakuraのレンタルサーバーを利用した例。
VS Codeの拡張機能「SFTP」で実現します。

wordpressの環境をローカルで作成している場合などに便利です。


①まずはSSHでサーバーにログイン

コマンドラインにて。

//[FTPアカウントのID]@[FTPサーバ]
ssh mofumofu@mofumofu.sakura.ne.jp

//サーバーパスワードを入力します。
mofumofu@mofumofu.sakura.ne.jp's password: mogemoge

//なんやかんや出てくるけど、これが出てきたらログイン成功ちゃんです。
Welcome to FreeBSD!

//これから先、UNIXのコマンドを打てちゃう。


②SFTP接続するためにSSHの秘密鍵を作る

SSH:ネットワーク経由で別のコンピュータに接続し、遠隔操作するための仕組み。通信内容は全て暗号化される。
FTP:インターネットを使ってファイルを送受信するためのプロトコル。
SFTP:SSH+FTP(みたいな感じ)。安全にファイルを送受信するための仕組み。暗号化されているので安全。

↓大体こんなイメージ。

画像2

そのままコマンドラインにて。

//今いる場所を確認
% pwd
/home/mofumofu/

//初期フォルダへ移動
% cd www

//.sshディレクトリに移動
% cd ~/.ssh
.ssh: No such file or directory. //なかったらこうなる
% mkdir .ssh //なかったらつくる
% cd .ssh

//秘密の鍵たちを作っちゃう
% ssh -keygen -t rsa
Generating public/private rsa key pair. //秘密鍵と公開鍵のペアを作るよ

//保存する場所を聞かれる。そのままEnterすると、()内に作られる。
//今回は、さっき作った「.ssh」ディレクトリを指定。
Enter file in which to save the key(/home/mofumofu/.ssh/id_rsa): /home/mofumofu/www/.ssh/id_rsa

//パスワード聞かれる(適当でOK)★後から使うよ
Enter passphrase(empty for no passphrase): mogemoge
Enter same passphrase again: mogemoge //確認のためにもう一回入力

Your identification has been saved in id_rsa. //こっちが秘密鍵
Your public key has been saved in id_rsa.pub. //こっちは公開鍵
The ley fingerprint is:
... //なんかわちゃわちゃ出てくる

//ちゃんとできたかな?の確認
% ls
id_rsa    id_rsa.pub //完了!

作った秘密鍵はローカルに保存しておく。


③VS Codeを開いて拡張機能「SFTP」をインストール

VS Codeを起動 → 左サイドバーの「拡張機能」アイコンをクリック
→ 検索窓に「sftp」と入力 → 出てきたやつをインストール

スクリーンショット 2020-06-18 22.57.13


④そのままVS Codeで設定ファイルを作る

ctrl + shift + P で、コマンドパレットを出す
SFTP: Config と入力
→ 「.vscode/sftp.json」が開く(これが設定ファイル)

わちゃわちゃ入力して保存する。
※ディレクトリは絶対パスで。

{
 "host""mofumofu.sakura.ne.jp",  // サーバーのホスト名
 "protocol""sftp"// 接続形式
 "port"22,  // ポート番号(だいたい22)
 "username""mofumofu"// サーバーID
 "remotePath""/home/mofumofu/www/wp/"// ファイルをアップロードするサーバーのディレクトリ
 "privateKeyPath""/Users/mofumofu/.ssh/id_rsa"// さっきローカルに保存した秘密鍵の保存場所
 "passphrase""mogemoge"// ★で入力したパスフレーズ
 "password""mogemoge"// サーバーパスワード
 
 //ファイルを保存したときに、サーバーと同期するかどうか
 "uploadOnSave"false,

 //起動したときに、サーバーのファイルをDLするかどうか
 "downloadOnOpen"false,

 //↓ファイル同期から除外したいものがあれば記述
 "ignore": [
   "**/.vscode/**",
   "**/.history/**",
   "**/.git/**",
   "**/.DS_Store"
 ]
}

設定完了!


⑤同期のやりかた

VS Codeのコマンドパレットにて。

・ローカルからサーバーにアップロード(変更した全ファイル):「SFTP: Sync Local -> Remote」+ Enter

・ローカルからサーバーにアップロード(指定したファイルのみ):アップロードしたいファイルを右クリック → 「Upload

・サーバーからローカルにダウンロード(変更した全ファイル):「SFTP: Sync Remote -> Local」+ Enter


おわり。


この記事が気に入ったらサポートをしてみませんか?