VSCodeでSFTP(さくらサーバー)
はじめに
VSCodeのsftpという拡張機能を使い、SSHの認証方式の一つとして公開鍵認証を使ってさくらサーバーに接続。
必要なファイルをさくらサーバーからローカルにダウンロードし効率よく作業できるようにしました。
ここではすでにWordPress化したフォルダがさくらサーバーにアップされているものとします。
Mac環境で進めます。
VSCodeで拡張機能インストール
VSCodeを開き、Extentions
タブを選び検索窓にsftp
と入力すると画像の拡張が出てくるのでインストールする。
公開鍵と秘密鍵の登録
SSHでさくらサーバーに接続
さくらサーバーのアカウント情報を使います。
最初にy?n?と聞かれるので、yesと入力。
ssh <FTPアカウント>@<IPアドレス>
さくらサーバーのユーザー名とIPアドレスはサーバー情報のところにあります。
password:
さくらサーバーのパスワードを入力。
ログインに成功
FTPアカウント@IPアドレス's password:
Welcome to FreeBSD!
鍵の作成
.sshフォルダがなかったら作成する
mkdir ~/.ssh
.sshディレクトリに移動
cd ~/.ssh
ローカルで公開鍵を作成
ssh-keygen -t rsa
このような文章が出てくるので一つ目はそのままEnter。
passphrase(パスフレーズ)も任意ですが、もし秘密鍵が流出してもパスフレーズがないと使えない、ログインできないため安全性が増すので設定しておきましょう。
Enter file in which to save the key (/home/<FTPアカウント>/.ssh/id_rsa):<そのままEnter>
Enter passphrase (empty for no passphrase):<任意>
Enter same passphrase again:<任意>
.sshの中を確認すると、id_rsa(秘密鍵)
とid_rsa.pub(公開鍵)
が生成されました。
ls
id_rsa id_rsa.pub
公開鍵をさくらサーバーに転送(authorized_keysに変換)
# scp ~/.ssh/id_rsa.pub <FTPアカウント>@<IPアドレス>:/home/<FTPアカウント>/.ssh/authorized_keys
...
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)?
FTPアカウント@IPアドレス's password:
continue connecting (yes/no)?
yesと打ってEnter
password:
さくらサーバーのパスワード入力。
authorized_keys
ファイルが作成され、さくらサーバーに転送完了
ls
authorized_keys id_rsa id_rsa.pub known_hosts
パーミッション変更
chmod 600
オーナーのみ読み書き可
chmod 700
オーナーのみアクセス可
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
秘密鍵(id_rsa)をローカルに保存
隠しファイル表示は⇧⌘. (コマンドシフトピリオド)
FileZillaなどでさくらサーバーの.ssh
にアクセスしid_rsa
をコピーして、ローカルの隠しファイル、/Users/ユーザー/.ssh/id_rsa
に保存。
SFTPで接続設定
空のフォルダを作成し、VSCodeで開く。
⇧⌘Pで検索し、SFTP:Config
を選択するとsftp.jsonの雛形ファイルが生成される。
それをこのファイルのように修正する。
{
// 任意ですが分かりやすい名前をつける
"name": "vscode-sftp",
// さくらサーバーのIPアドレスまたはドメイン
"host": "<IPアドレスまたはドメイン>",
"protocol": "sftp",
"port": 22,
// FTPアカウント
"username": "<FTPアカウント>",
// 秘密鍵の保管先ファイル
"privateKeyPath": "/Users/<ユーザー>/.ssh/id_rsa",
// 鍵作成時に設定していればそのpassphrase(パスフレーズ)
"passphrase": "<パスフレーズ>",
// さくらサーバー上のディレクトリ(themes配下をコピーする)
"remotePath": "/home/<FTPアカウント>/www/vscode-sftp/wp-content/themes/vscode-sftp",
// ローカル作業ディレクトリ(上で作った空フォルダの場所を指定する、ここにダウンロードされる)
"context": "/Users/<ユーザー>/Desktop/workspace/sftp",
// ファイル保存時に自動アップロードするかどうか
"uploadOnSave": true,
// ファイル変更を監視し自動アップロードするかどうか
"watcher": {
"files": "**/*.{js,css,html}",
"autoUpload": true
},
"ignore": [".vscode", ".git", ".DS_Store", "sftp.json"]
}
watcherの設定
watcher
を設定することで、VSCodeでファイルを修正した時にMacだと⌘Sで保存しなくても自動的にサーバーに反映され、ブラウザをリロードするだけで修正が反映されます。
①sftp.json
"watcher": {
"files": "**/*.{js,css,html}",
"autoUpload": true
},
②settings.json
"files.autoSave": "afterDelay"
ファイル一式をサーバーからダウンロード
⇧⌘Pで検索し、
SFTP:Sync Remote → Local
でsftp.jsonの"remotePath"
で設定したファイルをさくらサーバーから一式ダウンロードします。
ダウンロード先フォルダを選択
さくらサーバーからファイル一式のダウンロードが完了しました。
ファイルや画像のアップロード
画像やファイルをVSCodeにドラッグ&ドロップしたら、そのファイルや画像の上でマウスを右クリックしUpload File
を選択すればそのままサーバーにアップロードされます。
わざわざFTPソフトを使うよりも確実に作業効率が上がります。
これでそのままScssも使え修正〜保存までの無駄なクリック数も減らすことができます。
Discussion