web関連

【Visual Studio Code】拡張機能「SFTP」で上手く接続できなかった時の備忘録

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

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。