SFTP接続(ファイルの移動)
コマンドラインでSFTP(ファイルのアップロード、ダウンロード)を行う方法について説明します。
SFTPとは?
SFTP(エスエフティーピー)は「SSH File Transfer Protocol」の略で、SSHの技術を利用してファイルを安全に転送するためのプロトコルです。SSHで確立された安全な接続上で動作するため、FTP(File Transfer Protocol)よりも高いセキュリティでファイルを送受信できます。
例えるなら、SSHが「安全な通路」で、SFTPはその「安全な通路」を使う「物を送受信するための郵便サービス」のようなものです。ウェブサイトのファイルをサーバーにアップロードしたり、サーバーからファイルをダウンロードしたりする際に利用します。
夢中教室ではかつてFTPによるファイル転送を行っていましたが、特殊な方法がなければ絶対に行わないでください。SFTPはすべての通信内容を暗号化しますが、他方でFTPは通信の盗聴に脆弱であるだけでなく、サーバーの認証情報を漏洩させる危険性もあります。
SFTPによる手動のファイルアップロードによるWordPressのサイト更新は、コンフリクト(ファイル衝突)防止などの観点から極力行ってはいけません。
やむを得ない場合や、WordPressに関係のない部分を操作するときのみSFTPを使うのが望ましいです。
このページでは、ターミナルを使用したSFTPの使用方法について説明しています。
エンジニアの方は、これらの内容はごく基礎的なものなので必ず理解してください。
それ以外の方は、FilezillaなどのFTPクライアントの使用も視野に入れてください。
SFTPで接続する
SFTPで接続するには、ターミナルで以下の形式のコマンドを入力します。
sftp ユーザー名@ホスト名またはIPアドレス
例:
sftp myuser@example.com
SSHと同様に、パスワードの入力を求められる場合があります。パスワードが正しければ、SFTPのプロンプト(例: sftp>)が表示され、ファイル転送コマンドを入力できる状態になります。
SFTPの基本的なコマンド
SFTPに接続した後、いくつかの基本的なコマンドを使ってファイルを操作できます。
ls: 接続先のディレクトリ(フォルダ)の内容を表示します。
ls
pwd: 接続先の現在の作業ディレクトリ(カレントディレクトリ)を表示します。
pwd
cd <ディレクトリ名>: 接続先のディレクトリを移動します。
cd public_html
lpwd: あなたのローカルコンピューター(現在操作しているコンピューター)の現在の作業ディレクトリを表示します。
lpwd
lcd <ローカルディレクトリ名>: あなたのローカルコンピューターのディレクトリを移動します。
lcd ~/Desktop/my_files
get <リモートファイル名>: 接続先のコンピューターからあなたのローカルコンピューターにファイルをダウンロードします。
get index.html
put <ローカルファイル名>: あなたのローカルコンピューターから接続先のコンピューターにファイルをアップロードします。
put my_image.jpg
exit: SFTPの接続を切断し、元のターミナルに戻ります。
exit
SFTPの使用例
あなたのPCにある my_website.html というファイルをサーバーの public_html ディレクトリにアップロードする場合の例です。
SFTPでサーバーに接続します。
sftp myuser@example.com
サーバー側の作業ディレクトリを public_html に移動します。
cd public_html
あなたのローカルPCの作業ディレクトリを my_website.html がある場所(例えばデスクトップ)に移動します。
lcd ~/Desktop
ファイルをアップロードします。
put my_website.html
SFTPの接続を切断します。
exit