1. サーバーにつなぐ 3 つの方法
Web サイトのファイルは、レンタルサーバーなどのコンピューターに置かれています。そこへ手元のパソコンからつなぐ方法として、よく名前が出るのが次の 3 つです。
| できること | 中身の暗号 | |
|---|---|---|
| FTP | ファイルを送る・受け取る | しない |
| SFTP | ファイルを送る・受け取る | する(SSH の通り道を使う) |
| SSH | サーバーに命令を送って操作する | する |
FTP と SFTP は名前がよく似ていますが、中身は別の仕組みです。SFTP は「FTP に暗号を足したもの」ではなく、SSH の通り道の上でファイルを送るために作られた方法です。
2. FTP でファイルを送る
FTP は、インターネットの初期からある、ファイルを送るための決まりです。FileZilla などのソフトに、サーバーの名前・ユーザー名・パスワードを入れてつなぎます。
FTP は、やりとりを暗号にしません。ログインのときのパスワードも、送るファイルの中身も、そのままの形で通り道を流れます。通り道のどこかで覗かれると、パスワードがそのまま読めてしまいます。
3. FTP は通り道を 2 本使う
FTP は、つないだあとに通り道を 2 本使います。
- 命令の通り道(多くは 21 番):「ログインする」「このファイルを送る」などの命令をやりとりします
- データの通り道:ファイルの中身や、ファイルの一覧を運びます。ファイルを送るたびに別に開きます
データの通り道をどちらから開くかで、「アクティブモード」と「パッシブモード」の 2 つのやり方があります。今は、手元のパソコンから開くパッシブモードを使うのが一般的です。ログインはできるのにファイルの一覧が出ないときは、データの通り道がルーターなどで止められていることが多く、ソフトの設定をパッシブモードにすると直ることがあります。
4. SFTP でファイルを送る
SFTP は、SSH(次の 5 で説明します)で作った暗号の通り道の中で、ファイルを送る方法です。FileZilla などのソフトは、FTP と同じ画面で SFTP も使えます。
- パスワードもファイルも、暗号にしてから送ります。途中で覗かれても中身は読めません
- 通り道は 1 本だけで、多くは SSH と同じ 22 番を使います
補足
ポート番号は、サーバーによって 22 番ではないことがあります。たとえばエックスサーバーは 10022 番です。SFTP でつながらないときは、サーバーのマニュアルで番号と、SSH を使える設定にしてあるかを確かめてください。
よく似た名前に FTPS があります。こちらは FTP のやりとりを TLS(HTTPS と同じ暗号の仕組み)で包んだもので、SFTP とは別物です。どちらも暗号にはなりますが、つなぎ方や設定の場所が違うので、ソフトでは方式を正しく選ぶ必要があります。
5. SSH でサーバーを操作する
SSH は、手元のパソコンからサーバーにログインして、命令を送って操作する方法です。黒い画面(ターミナル)に ls(ファイルの一覧を出す)などの命令を打つと、サーバーの上でそれが動き、結果が返ってきます。
- ファイルを 1 つずつ送るのではなく、サーバーの上で直接、まとめて作業できます。バックアップを取る、WordPress を wp-cli で操作する、などに使います
- やりとりはすべて暗号の通り道を通ります。SFTP はこの通り道を借りてファイルを送っています
6. パスワードの代わりに鍵でログインする
SSH と SFTP では、パスワードの代わりに 鍵 でログインできます。鍵は 2 つで 1 組です。
- 手元のパソコンで、秘密鍵 と 公開鍵 の組を作ります
- 公開鍵を、サーバーに登録しておきます(公開鍵は人に見られてもかまいません)
- ログインのとき、サーバーは「この公開鍵と組になる秘密鍵を持っているか」を確かめます。秘密鍵そのものは通り道に流れません
秘密鍵はパスワードと同じで、持っている人は誰でもログインできます。人に渡さず、なくしたときはサーバーに登録した公開鍵を消して、新しい組を作り直します。
パスワードのように当てずっぽうで試されることがないので、パスワードだけのログインより安全です。レンタルサーバーによっては、鍵でのログインしか受け付けない設定になっています。
7. どれを使えばよいか
| したいこと | 使う方法 |
|---|---|
| ファイルを送る・受け取る | SFTP(使えなければ FTPS) |
| サーバーの上で作業する | SSH |
| 古いサーバーで FTP しか使えない | FTP(公衆 Wi-Fi では使わない、パスワードを使い回さない) |
暗号にしない FTP は、使えるサーバーが今も多いのですが、選べるなら SFTP にしておくのが安心です。レンタルサーバーの管理画面で、SSH(SFTP)を使えるようにする設定があるか確かめてみてください。
出典
- RFC 959: File Transfer Protocol (FTP)
- RFC 2577: FTP Security Considerations
- RFC 4217: Securing FTP with TLS
- RFC 4251: The Secure Shell (SSH) Protocol Architecture
- RFC 4252: The Secure Shell (SSH) Authentication Protocol
- RFC 4253: The Secure Shell (SSH) Transport Layer Protocol
- SSH File Transfer Protocol(IETF の草案)
- FTP(MDN 用語集)
- SSHの設定(エックスサーバー マニュアル)
この図解は、出典に挙げた仕様や公式の文書をもとに Claude(AI)が下書きし、セオリコが内容を確かめて公開しています。図は説明のために流れを簡単にしたもので、実際のやりとりはサイトや環境によって異なります。