FTPとSFTPの違いにお悩みですか?ウェブサイトのサーバーに接続し、ファイルを転送、管理する最も簡単な方法は、FTPクライアントです。しかし、FTPクライアントを設定する際、FTPとSFTPの両方がサポートされていることを知り、戸惑う場面があります。
FTPとSFTPの違いは何でしょうか?また、どちらを使えば良いのでしょうか?
簡単に言えば、SFTPはFTPよりも安全です。そのため、KinstaではSFTPのみを提供し、すべてのユーザーにSFTPの使用を推奨しています。
詳しい説明が必要であれば、この記事をお読みください。2つのプロトコルについて知るべきこと、そして、どちらを使うべきかをご説明します。
FTPとSFTPの比較
まずFTPとSFTPの共通点について説明します。
どちらのプロトコルも、FileZillaのようなFTPクライアントを使用してウェブサイトのサーバーに接続できます。エンドユーザーにとって、FTPとSFTPの使い勝手はほとんど変わりません。どちらのプロトコルでも、以下の操作が可能です。
- サーバーへの接続
- サーバー上のすべてのファイル(隠しファイルを含む)の閲覧
- ローカルコンピュータからサーバーへのファイルのアップロード
- サーバーからローカルコンピューターへのファイルのダウンロード
- 等々
しかし、内部にはいくつか大きな違いがあります。FTPとSFTPのこの違いを理解することは特に重要です。
詳しく見ていきましょう。
FTPとは何か?
FTPとは、File Transfer Protocol(ファイル転送プロトコル)の略です。クライアントサーバーモデルを使用して、FTPクライアントとウェブサーバーの間で、ファイルの直接転送をサポートします。
FTPでは、コマンドチャネルとデータチャネルという2つの独立したチャネルを使用して情報を転送します。デフォルトでは、両方のチャネルとも暗号化されていないため、悪意のある第三者が転送している情報を盗聴する可能性があります。
SFTPとは何か?
SFTPはSSH File Transfer Protocol(SSHファイル転送プロトコル)の略ですが、一般にはSecure File Transfer Protocol(安全なファイル転送プロトコル)とも呼ばれます。
SFTPは、基本的な機能はFTPと同じですが、トンネリングを利用してSSHでファイル転送を行います。FTPのクライアントサーバーや、直接転送方式とは異なります。
では、SSHとは何か?
SSHはSecure Shell(セキュアシェル)の略で、安全でないネットワーク上で、マシン(ここではサーバー)に安全にアクセスする暗号化プロトコルです。
SFTPは単一のチャネルしか使用せず、ユーザー名とパスワード、またはSSH暗号鍵のいずれかを使用してクライアントを認証します。
FTPとSFTPの違いは何か?
FTPとSFTPの大きな違いは、SFTPが安全なチャネルを使用してファイルを転送するのに対し、FTPがそうでないという点です。
SFTPでは、接続は常に保護され、FTPクライアントとウェブサーバーの間で転送されるデータは暗号化されます。つまり、悪意のある第三者がお客様のデータを傍受することは不可能です。転送するデータは常に暗号化されます。
FTPでは、最初に接続する際にユーザー名とパスワードによる認証が必要です。しかし、ウェブサーバーとFTPクライアントの間でやり取りするデータは暗号化されていないため、悪意のある第三者が理論上その情報を盗聴することが可能です。
これは特に、機密情報を含むファイルを転送する場合に危険です。例えば、WordPressサイトでは、wp-config.phpファイルを転送する場合を考えます。このファイルには、データベースの認証情報や重要な設定が含まれます。
悪意のある第三者がこのファイルを入手した場合、WordPressサイトを乗っ取るために必要なすべてが揃います。
重要なポイントです。
どちらのプロトコルもクライアントとサーバー間でファイルを転送できますが、SFTPはFTPよりはるかに安全です。
FTPとSFTPのどちらを使うべきか?
もうお分かりかと思いますが、FTPよりも常にSFTPを使用すべきです。SFTPはサーバーへの接続と情報の転送をより安全に行います。
SFTPはより安全な方法であるため、KinstaではSFTP接続のみをサポートしています。
KinstaでWordPressサイトをホスティングしている場合は、記事「SFTP経由でサーバーに接続する方法」もご覧ください。