Yamamoto's Laboratory
 
 
WinSCP
 
 
 
 
 
 
 
 
 
 

WinSCP

Windows 用ファイル転送クライアント WinSCP に関するメモです.SFTP を使って,ローカル PC と Web サーバーの間でファイルを転送します.

WinSCP のロゴ

目次


WinSCP とは

WinSCP は,Windows 用の無料で使えるファイル転送クライアントです.SFTP,FTP,FTPS,SCP,WebDAV,S3,ローカルファイル間の転送に対応しています.サーバー上のファイルを GUI で操作できるため,Web サーバーへのアップロードや設定ファイルの確認に便利です.

Web サーバーとのファイル転送には,できるだけ SFTP を使います.SFTP は SSH 上で動作するため,通信内容が暗号化されます.昔ながらの FTP は暗号化されないため,ユーザー名やパスワードを扱う用途では避けた方が安全です.

インストール

WinSCP は公式サイトのダウンロードページから入手します.通常は Installation package をダウンロードし,インストーラーを実行します.Microsoft Store 版もありますが,ここでは公式サイトから入手する通常のインストーラーを使います.

  1. WinSCP のダウンロードページを開きます.
  2. Installation package をダウンロードします.
  3. ダウンロードしたインストーラーをダブルクリックします.
  4. ライセンスを確認して同意します.
  5. 通常の利用であれば,セットアップ形式は Typical installation を選びます.
  6. 画面の指示に従ってインストールします.

初期設定では,インターフェースを選択できます.左右 2 画面でローカルとリモートを並べて操作したい場合は Commander interface が便利です.Windows のエクスプローラーに近い操作感を好む場合は Explorer interface を選びます.

接続設定

基本設定

WinSCP を起動すると,ログインダイアログが表示されます.新しい接続先を作る場合は New Site を選び,接続に必要な情報を入力します.よく使う接続先は Save で保存しておくと,次回から一覧で選ぶだけで接続できます.

WinSCP の接続設定例
設定項目 設定例
File protocol SFTP
Host name www.yamamo10.jp
Port number 22 (SFTP の標準ポート)
User name ユーザー名
Password 公開鍵認証を使う場合は空欄にします.

初回接続時には,サーバーのホスト鍵を確認する画面が表示されることがあります.これは接続先サーバーが本物かどうかを確認するための重要な警告です.可能であれば,サーバー管理者が示すホスト鍵の fingerprint (指紋) と一致することを確認してから接続します.

公開鍵認証

パスワードではなく公開鍵でログインする場合は,秘密鍵を WinSCP に指定します.秘密鍵は外部に漏らしてはいけない重要なファイルです.PuTTY 形式の秘密鍵 (.ppk) を使っている場合は,WinSCP から直接指定できます.また,Pageant に鍵を登録しておけば,WinSCP からも Pageant を利用できます.

  1. ログインダイアログで接続先を選択します.
  2. Advanced をクリックします.
  3. SSH > Authentication を開きます.
  4. Private key file に .ppk ファイルを指定します.Pageant を使う場合は,あらかじめ Pageant に秘密鍵を登録しておきます.
  5. 設定を保存し,ログインします.

Pageant の設定は,PuTTY: 自動認証 (Pageant) にまとめています.複数の SSH 対応アプリケーションを使う場合は,Pageant に鍵を登録しておくと便利です.

基本的な使い方

Commander interface では,通常,左側にローカル PC,右側にリモートサーバーが表示されます.ファイルをドラッグアンドドロップするか,コピー先を選んでアップロードまたはダウンロードします.

  • ローカルからサーバーへ送る操作がアップロードです.
  • サーバーからローカルへ取得する操作がダウンロードです.
  • サーバー上のファイルを WinSCP のエディター連携で開く場合は,保存時にアップロードされる動作を確認します.
  • 重要なファイルを上書きする前には,ローカルにバックアップを取ります.

Web サイトの更新では,アップロード先のディレクトリーを間違えないことが重要です.たとえば公開用のディレクトリーが /home/yamamoto/www/ であれば,接続後にそのディレクトリーへ移動してからファイルを転送します.

VS Code と Codex で編集する

出張先の Wi-Fi や電車内のテザリング環境では,リモートサーバー上のファイルを直接編集するよりも,いったんローカル PC にコピーしてから編集する方が安定します.VS Code と Codex はローカルの作業フォルダーを対象に使い,保存されたファイルを WinSCP で Web サーバーへ反映します.

この用途には,WinSCP の Keep Remote Directory up to Date を使います.これはローカルフォルダーの変更を監視し,保存されたファイルを対応するリモートフォルダーへアップロードする機能です.WinSCP は変更があったフォルダーを同期するため,最初にローカルとリモートをほぼ同じ状態にしてから開始するのが安全です.

作業フォルダーの準備

まず,Web サーバー上のファイルと対応するローカルの作業場所を決めます.このローカルフォルダーを VS Code と Codex の作業場所にし,WinSCP では同じフォルダーを同期元として使います.

  1. ローカル PC に作業用フォルダーを作ります.例: C:\Users\yamamoto\work\yamamo10_www
  2. WinSCP で Web サーバーに SFTP 接続します.
  3. リモート側で Web ページのディレクトリーを開きます.例: /home/yamamoto/www/
  4. 必要なファイルやフォルダーをリモートからローカルの作業用フォルダーへコピーします.
  5. VS Code でローカルの作業用フォルダーを開きます.Codex もこのローカルフォルダーを対象に使います.

最初は,編集対象のページだけでなく,関連する画像,CSS,PHP の include 先も一緒にコピーしておくと確認しやすくなります.ただし,公開サーバー側で自動生成されるファイル,ログファイル,キャッシュファイルまで同期対象に含める必要はありません.

自動アップロードの設定

ローカルで編集したファイルを保存した時点でリモートへ反映するには,WinSCP にローカルフォルダーの変更を監視させます.設定を始める前に,左右のパネルが対応する同じ階層を指していることを確認します.

  1. WinSCP で,左側にローカルの作業用フォルダー,右側に対応するリモートフォルダーを表示します.
  2. メニューの Commands > Keep Remote Directory up to Date を選択します.
  3. Local directory と Remote directory が正しいことを確認します.
  4. 開始時に差分を合わせたい場合は,Synchronize on start を有効にします.初回は同期内容をよく確認してから実行します.
  5. Start をクリックします.以後,VS Code でローカルファイルを保存すると,WinSCP が変更を検出してリモートへアップロードします.

ローカルで削除したファイルをリモートでも削除したい場合は,削除同期の設定を使えます.ただし,誤削除の影響が大きいため,普段は削除を自動反映しない設定にしておく方が安全です.具体的には,Keep Remote Directory up to Date の設定画面で,削除を反映する項目を有効にしません.設定画面の Delete files のチェックを外した状態で Start をクリックします.

この設定では,VS Code や Codex の操作でローカルファイルを削除しても,リモート側のファイルは自動削除されません.不要ファイルを本当に消す場合だけ,WinSCP のリモート側画面で対象ファイルを確認し,手動で削除します.

外出先で編集する場合の設定例
項目 設定例
Local directory C:\Users\yamamoto\work\yamamo10_www
Remote directory /home/yamamoto/www/
対象ファイル *.html,*.php,*.css,画像ファイルなど
除外例 .git,.vscode,一時ファイル,バックアップファイル

作業手順

実際の編集作業では,WinSCP は接続と同期を担当し,VS Code と Codex はローカルファイルの編集を担当します.作業開始から終了までの流れは次のとおりです.

  1. 外出先でネットワークに接続します.公共 Wi-Fi を使う場合でも,ファイル転送は FTP ではなく SFTP を使います.
  2. WinSCP で Web サーバーに接続し,ローカル作業フォルダーとリモートフォルダーを開きます.
  3. 必要に応じてリモートの最新ファイルをローカルへダウンロードします.
  4. Keep Remote Directory up to Date を開始します.
  5. VS Code でローカルファイルを編集します.Codex に修正を依頼する場合も,このローカルファイルを編集対象にします.
  6. VS Code で保存します.保存後,WinSCP がローカルの変更を検出し,対応するリモートファイルを上書きします.
  7. ブラウザーで Web ページを確認します.必要なら再編集し,保存します.
  8. 作業が終わったら,WinSCP の監視を停止してから切断します.

この方法では,リモートファイルが保存のたびに上書きされます.公開中のページを直接更新するため,保存前に VS Code 側で差分を確認し,必要ならローカルにバックアップを残します.大きなファイルやフォルダー名の変更は自動同期ではなく,WinSCP の画面で確認しながら手動で行います.通信が不安定な場所では,保存直後に WinSCP の転送ログを確認し,アップロードが完了してからページを確認します.

ページ作成情報



no counter