FTP接続は簡単にできたけどSFTPで接続しようとしたら思ったより色々と躓いたので備忘録
サーバーはエックスサーバーを使って、既にFTPツールでSFTP接続確立している場合
拡張機能「SFTP」の最終的な設定内容
sftp.json
{
"name": "何でもいい",
"host": "sv○○○○.xserver.jp",
"protocol": "sftp",
"port": 10022,// エックスサーバーポートは「10022」
"username": "○○○○",// サーバーID
"password": "○○○○",// サーバーパスワード
"ignore": [".vscode", "sass", ".DS_Store", "node_modules", "gulpfile.js", "package-lock.json", "package.json"],// アップロードするのファイルから除外
"remotePath": "/home/○○○○/sample.com/public_html/wp-content/themes/theme_name",// アップロード先ディレクトリ
"privateKeyPath": "C:/Users/username/~ sftp接続用の鍵までのパス ~/○○○○.ppk",
"passphrase": "○○○○○○",// SFTP接続する際のパスフレーズ
"uploadOnSave": false // ファイル更新時に自動アップロード無効
}
以下上手く行かなかったときのエラーとかの備忘録
エックスサーバーのportは「22」じゃない
エックスサーバーのportは「22」じゃなくて「10022」だった
portが異なるため「Timed out while waiting for handshake」というエラーが出た
FTP接続とSFTP接続の場合はサーバーのパスが異なる
FTP接続で上手く行って、設定を書き換えてSFTP接続にしたときの注意
FTP接続とSFTP接続の時でサーバーのパスが異なることがある
※一度FTPツールとかで接続してパスとか確認することを勧める
こちらも接続が上手く行かず「Timed out while waiting for handshake」というエラーがでる
接続が上手くいっているのに「Error: No such file」というポップアップが出る
これはvscodeのバージョンに拡張機能「SFTP」が対応しきれていないことが原因のよう
なのでoptions.autoDestroy = false;
を「sftp.js」ファイルに追加する
特に何も設定弄らずインストールしたなら以下に「sftp.js」ファイルがある
C:\Users\(ユーザーフォルダ名)\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js
「sftp.js」ファイルの2929行目にoptions.emitClose = false;
があるのでその直下にoptions.autoDestroy = false;
を追加
詳しくは参考サイト↓
Leave a Comment