FTPとSFTPの違いをご存知ですか?FTPクライアントは、ウェブサイトのサーバーに接続し、ファイルを転送、管理する際に使用します。FTPクライアントには、FTPとSFTPの両方をサポートしているものがあり、どちらを選べばいいかわからない人も多いはず。
FTPとSFTPの違いとは何か。そしてどちらを使用すればいいのでしょうか。
一言でまとめるなら、SFTPはFTPよりも安全です。KinstaではSFTPのみをサポートし、すべてのお客様にSFTPの使用を推奨しています。
この記事では、FTPとSFTPそれぞれの概要と違い、そしてどちらを使用するべきか、詳しく見ていきます。
FTPとSFTPの違い
まずは、FTPとSFTPの共通点について見てみましょう。
どちらのプロトコルも、FileZillaのようなFTPクライアントを使用して、ウェブサイトのサーバーに接続することができます。エンドユーザーにとっては、FTPとSFTPの使い勝手はほぼ同じであり、どちらでも以下の操作が可能です。
- サーバーへの接続
- サーバー上のすべてのファイル(隠しファイルを含む)の閲覧
- ローカルコンピュータからサーバーへのファイルのアップロード
- サーバーからローカルコンピューターへのファイルのダウンロード
しかし、内部には大きな違いがいくつかあり、この違いを理解しておくことは重要です。
FTPとは
FTPは、File Transfer Protocol(ファイル転送プロトコル)の略です。クライアントサーバーモデルを使用して、FTPクライアントとウェブサーバーの間で、ファイルの転送をサポートします。
FTPでは、コマンドチャネルとデータチャネルという2つの独立したチャネルを使用して情報を転送します。デフォルトでは、どちらのチャネルも暗号化されておらず、悪意のある第三者によって転送しているデータが盗用される恐れがあります。
SFTPとは
SFTPは、SSH File Transfer Protocol(SSHファイル転送プロトコル)の略ですが、Secure File Transfer Protocol(安全なファイル転送プロトコル)とも呼ばれています。
基本的な機能は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のどちらを使用するべきか
すでにお分かりかと思いますが、セキュリティを考慮し、常にSFTPを使用するのがベストプラクティスです。サーバーへの接続とデータの転送をより安全に行うことができます。
KinstaではSFTP接続のみをご利用いただけます。
Kinstaのお客様は、SFTPを使用してWordPressサイトに接続する方法もご覧ください。