サーバーへのファイル転送で、どのプロトコルを使うべきか違いがわからず悩んでいませんか。
この記事を読むことで、FTP、FTPS、SFTP、SCPという4つのプロトコルの違いをセキュリティ・速度・利便性の観点から明確に理解し、自身のプロジェクトやインフラ環境において最適解となるプロトコルを選択・実装できる状態になれます。

この記事でわかること
・ FTP/FTPS/SFTP/SCPの4つのプロトコルの特徴と違い
・ 現代のファイル転送でSFTPが第一選択肢となる理由
・ SFTPとFTPSを分けるSSHとSSL/TLSの根本的な仕組み
・ 用途に応じたSFTPとSCPの具体的な使い分け方

一目でわかる!FTP/FTPS/SFTP/SCPの機能・セキュリティ比較

ファイル転送プロトコルは、それぞれ暗号化の有無、使用するポート番号、そして基盤となる技術に違いがあります。
安全なファイル転送が求められる現在では、通信が暗号化されているSFTPが最も推奨される選択肢です。

一方で、古くから使われているFTPはセキュリティ上のリスクから利用は非推奨とされています。
各プロトコルの違いを把握し、目的に合ったものを選びましょう。

ファイル転送プロトコルを選ぶ際の比較基準

ファイル転送プロトコルを選ぶ際は、主に「セキュリティ」「機能性」「ファイアウォール設定の容易さ」という3つの基準で比較します。
セキュリティでは通信経路が暗号化されているか、機能性ではファイル一覧の表示や転送の中断・再開が可能か、そしてファイアウォール設定では使用するポートの数が管理のしやすさの違いに直結します。
これらの基準を元に、各プロトコルの特性を理解することが重要です。

各プロトコルの特徴比較一覧

以下に、4つのファイル転送プロトコルの主な違いをまとめます。

FTP

暗号化なし。ポートは20番と21番を使用。最も基本的だがセキュリティリスクが高い。(もう使われることはない)

FTPS

SSL/TLSで暗号化。ポートはモードにより21番や990番(制御)、およびデータ転送用に20番/989番や動的ポートを使用。FTPのセキュリティ強化版だが、ポート管理が複雑。

SFTP

SSHで暗号化。ポートは22番のみを使用。認証からデータ転送まで一貫して安全で、管理も容易。

SCP

SSHで暗号化。ポートは22番のみを使用。SFTPより高速だが、ファイル一覧表示などの機能はない。

4つのファイル転送プロトコルの仕組みと特徴

ファイル転送に使われる4つのプロトコルは、その成り立ちや仕組みが異なります。
最も基本的なFTPから、セキュリティを強化したFTPS、そしてSSHという別の仕組みを利用するSFTPとSCPまで、それぞれの特徴を理解することで、より適切な技術選定が可能になります。
このセクションでは、各プロトコルの詳細を解説します。

FTP(File Transfer Protocol):最も基本的なファイル転送方法

FTP(File Transfer Protocol)は、インターネット初期から利用されている、ファイルを送受信するための最も基本的な通信プロトコルです。
サーバーとクライアント間でファイルのアップロードやダウンロードを行うための基本的な機能を提供します。
長年にわたり広く使われてきたため、多くのシステムやデバイスで標準的にサポートされているのが特徴です。

FTPのメリット:シンプルで多くのシステムに導入済み

FTPの最大のメリットは、そのシンプルさと普及率の高さです。
古くから存在するプロトコルであるため、多くのサーバーOSやネットワーク機器、クライアントソフトウェアに標準で機能が組み込まれています。

特別な準備をしなくても、すぐに利用を開始できる手軽さがあり、互換性の問題が発生しにくい点が強みです。

FTPのデメリット:通信が暗号化されずセキュリティに重大な懸念

FTPの致命的なデメリットは、通信内容が一切暗号化されない点にあります。
ユーザー名、パスワード、そして転送されるファイルの内容がすべて平文のままネットワーク上を流れます。
これにより、第三者によるデータの盗聴や改ざんのリスクが極めて高く、現代のセキュリティ基準では安全な通信方法とは言えません。

FTPS(FTP over SSL/TLS):FTPを暗号化した安全な通信方法

FTPSは、従来のFTPの通信をSSL/TLSという暗号化技術で保護するプロトコルです。
FTPの基本的な仕組みはそのままに、認証情報や転送データを暗号化することで、盗聴や改ざんのリスクを低減させます。
既存のFTPサーバーの資産を活かしつつ、セキュリティを向上させたい場合に利用されることがあります。

FTPSのメリット:SSL/TLSによる暗号化で通信の安全性を確保

FTPSのメリットは、WebサイトのHTTPS化でも利用される信頼性の高いSSL/TLS技術によって通信を暗号化できる点です。
FTPの弱点であったセキュリティ面を補強し、ユーザー名やパスワード、ファイル内容を保護しながら安全にファイル転送を行えます。
FTPに慣れたユーザーが同様の操作感で使えることも利点の一つです。

FTPSのデメリット:複数のポートを使用するためファイアウォール管理が複雑化

FTPSのデメリットは、ファイアウォールの設定が複雑になる点です。
FTPと同様に、命令をやり取りする「制御コネクション」と、データを転送する「データコネクション」で別々のポートを使用します。
特にデータコネクションで動的なポートが使われる場合、ファイアウォールで許可するポートの範囲を広く取る必要があり、管理が煩雑になります。

SFTP(SSH File Transfer Protocol):SSHを利用した安全なファイル転送

SFTPは、SSH(Secure Shell)という暗号化された通信路上でファイル転送を行うプロトコルです。
名前はFTPに似ていますが、FTPとは全く異なる仕組みで動作します。
認証情報からデータ転送まで、すべての通信がSSHによって暗号化されるため、非常に高いセキュリティを確保できます。

現代のファイル転送における標準的な選択肢とされています。

SFTPのメリット:単一ポートで通信でき管理が容易で安全性が高い

SFTPの大きなメリットは、すべての通信を単一のポート(デフォルトで22番)で完結できる点です。
これにより、ファイアウォールの設定が非常にシンプルになります。
また、SSHの堅牢な暗号化と認証機能を利用するため、なりすましやデータ盗聴のリスクを効果的に防ぐことができ、安全性が極めて高いのが特徴です。

SFTPのデメリット:利用するにはSSHサーバーに関する知識が必要

SFTPのデメリットとして、サーバー側でSSHのデーモン(sshd)を稼働させる必要がある点が挙げられます。
そのため、サーバー管理者はSSHに関する基本的な知識を持っていることが前提となります。
また、FTPと比較するとプロトコルの仕組みが複雑であるため、トラブルシューティングには専門的な知識が求められる場合があります。

SCP(Secure Copy Protocol):SSH上で動作するシンプルなコピー機能

SCPは、SFTPと同様にSSH上で動作するファイル転送プロトコルです。
その名の通り、サーバーとクライアント間でファイルを安全にコピーすることに特化しており、シンプルな機能と高速な転送が特徴です。
主にコマンドラインでの操作を前提としており、スクリプトなどを用いた自動的なファイル転送で多用されます。

SCPのメリット:コマンド操作で高速かつ手軽にファイル転送が可能

SCPのメリットは、そのシンプルさと転送速度です。
余分な機能がない分、プロトコルのオーバーヘッドが少なく、高速にファイルを転送できます。
コマンド一つで手軽にファイルを送受信できるため、特にLinuxやmacOSのターミナル操作に慣れたユーザーにとっては非常に効率的な手段となります。

SCPのデメリット:ファイルの一覧表示や中断・再開機能がない

SCPのデメリットは、機能がファイルコピーに限定されている点です。
SFTPのように、リモートサーバー上のファイル一覧を表示したり、ディレクトリを作成したり、転送を中断・再開したりする機能はありません。
対話的なファイル操作には向いておらず、あくまで単純なコピー処理に特化したツールです。

根本的な仕組みを解説!SSHベースとSSL/TLSベースのプロトコル

ファイル転送プロトコルのセキュリティは、その基盤となる暗号化技術に依存します。
SFTPとSCPはSSHを、FTPSはSSL/TLSを利用しており、この技術的な違いがプロトコルの挙動や設定方法に大きく影響します。
SSHはサーバーへの安全な接続経路そのものを確立するのに対し、SSL/TLSは特定の通信内容を暗号化する点で異なります。

SFTPとSCPで利用されるSSH(Secure Shell)の役割

SSH(SecureShell)は、リモートにあるコンピュータを安全に遠隔操作するためのプロトコルです。
通信はすべて暗号化され、確実な本人認証を経て接続が確立されます。
SFTPとSCPは、このSSHが確立した安全な通信トンネルの上で、ファイル転送という特定の機能を実現しています。

つまり、SSHがまず安全な道を確保し、その道をSFTPやSCPが通るイメージです。

FTPSで利用されるSSL/TLSによる暗号化の仕組み

SSL/TLSは、主にWebサイトの通信を暗号化するHTTPSで知られる技術です。
サーバーとクライアント間で「共通鍵暗号」と「公開鍵暗号」を組み合わせ、安全な通信経路を確立します。
FTPSでは、このSSL/TLSの仕組みをFTPの通信に適用しています。

まずFTPの制御コネクションを確立し、その上でSSL/TLSによる暗号化セッションを開始することで、送受信されるデータを保護します。

用途別!最適なファイル転送プロトコルの選び方

どのファイル転送プロトコルを選ぶべきかは、目的によって異なります。
現在、セキュリティと機能性のバランスからSFTPが最も推奨される方法です。
しかし、特定の状況下ではSCPやFTPSが適している場合もあります。

一方で、FTPの利用は原則として避けるべきです。
それぞれのプロトコルがどのような場面で活きるのかを解説します。

【推奨】汎用的なファイル管理ならSFTPが第一選択肢

GUIクライアントソフトウェアを利用した対話的なファイル管理や、日常的なアップロード・ダウンロード作業には、SFTPが最適です。
WinSCPやFileZillaといった多くのクライアントが対応しており、ドラッグ&ドロップでの操作やファイルの一覧表示、削除、名前の変更など、豊富な機能を利用できます。

セキュリティと利便性の両方を高いレベルで満たしており、現代のファイル転送における第一選択肢です。

スクリプトで転送を自動化するならSCPが便利

サーバー間のデータ同期やバックアップなど、定期的なファイル転送をスクリプトで自動化したい場合にはSCPが適しています。
コマンドラインでの操作が前提であり、シンプルな構文で記述できるため、シェルスクリプトなどに容易に組み込めます。
機能が限定的である分、SFTPよりも高速に動作する傾向があり、自動処理に向いています。

既存のFTP環境のセキュリティを強化したい場合はFTPSを検討

すでにFTPサーバーが稼働しており、クライアント側のシステムがFTPにしか対応していないものの、セキュリティは確保したい、という限定的な状況ではFTPSが選択肢となります。
FTPの仕組みをベースにしているため、既存の運用フローを大きく変更することなく、通信の暗号化を実現できる可能性があります。
ただし、ファイアウォールの設定が複雑になる点には注意が必要です。

なぜ今FTPは非推奨なのか?深刻なセキュリティリスクを解説

FTPが現在非推奨とされる最大の理由は、通信内容が一切暗号化されないためです。
ID、パスワード、ファイルの中身といった重要な情報が平文でネットワーク上を流れるため、通信経路の途中で第三者に情報を盗聴される「パケット盗聴」のリスクに常に晒されます。
これにより、不正アクセスや情報漏洩に直結する深刻な脆弱性を抱えているため、利用は避けるべきです。

ファイアウォール設定で注意すべきポート番号の違い

ファイル転送プロトコルを利用する際には、サーバー側のファイアウォールで適切なポートを開放する必要があります。
このポート番号の扱いはプロトコルによって大きな違いがあり、特にFTP/FTPSは複数のポートを利用するため設定が複雑化しやすい傾向があります。

ポート設定の変更や管理の容易さは、プロトコル選定の重要な要素の一つです。

FTP/FTPSで使われるポート(20番・21番)と通信モードの複雑さ

FTPおよびFTPSは、命令を送受信する制御用に21番ポート、データを転送するデータ用に20番ポート(アクティブモード時)を使用します。
しかし、ファイアウォールとの相性が悪いアクティブモードを避け、パッシブモードで運用するのが一般的です。
パッシブモードでは、サーバー側が指定するランダムなポートがデータ転送に使われるため、ファイアウォールで広範囲のポートを開放する必要があり、設定の変更や管理が複雑になります。

SFTP/SCPで使われるポート(22番)の管理のしやすさ

SFTPとSCPは、SSHプロトコル上で動作するため、使用するポートはSSHと同じ22番ポートのみです。
制御情報も転送データもすべてこの一つのポートを通じてやり取りされるため、ファイアウォールの設定は非常にシンプルです。
ポート22番へのアクセスを許可するだけで通信が確立でき、管理のしやすさからセキュリティポリシーの策定も容易になります。

FTP・SFTP・SCPに関するよくある質問

ここでは、ファイル転送プロトコルに関して頻繁に寄せられる質問とその回答をまとめました。

SFTPとFTPSの具体的な違いは何ですか?

最も大きな違いは、基盤となる技術と使用ポートです。
SFTPはSSH上で動作し、単一のポート(22番)で通信が完結します。

一方、FTPSはFTPの通信をSSL/TLSで暗号化するもので、複数のポートを使用するためファイアウォール設定が複雑になりがちです。
SFTPは全く別のプロトコルである点がポイントです。

なぜFTPは安全ではないと言われるのですか?

FTPは通信内容を暗号化しないためです。
ID、パスワード、転送するファイルの中身がすべて平文でネットワークに流れます。
これにより、第三者による盗聴が容易であり、認証情報の窃取や重要データの漏洩に直結する重大なセキュリティリスクを抱えているため、安全ではないと言われます。

Webサーバーへのファイルアップロードにはどのプロトコルを使うべきですか?

Webサーバーへのファイルアップロードには、セキュリティが確保されたSFTPの使用を強く推奨します。
多くのレンタルサーバーやクラウドサービスでは標準的にSFTPが利用可能です。
FileZillaやWinSCPといった無料のクライアントソフトも充実しており、安全かつ直感的にファイルをアップロードできます。

SFTPとSCPはどのように使い分ければ良いですか?

対話的なファイル操作にはSFTP、自動化されたファイル転送にはSCPという使い分けが一般的です。
SFTPはファイル一覧の表示や削除など機能が豊富で、GUIクライアントでの操作に向いています。
SCPは機能がシンプルな分、高速でコマンドラインからの実行に適しており、スクリプトへの組み込みに便利です。

この機能性の違いが両者の使い分けのポイントです。

まとめ

FTP、FTPS、SFTP、SCPは、それぞれ異なる仕組みと特徴を持つファイル転送プロトコルです。
セキュリティの観点から、通信が暗号化されないFTPの利用は現在非推奨とされています。
一方で、SSHを利用し単一のポートで安全に通信できるSFTPが、機能性と管理の容易さから最も汎用性が高く、現在の標準的な選択肢です。

スクリプトによる自動化など特定の用途ではSCPが、既存環境との互換性からFTPSが選択されることもあります。
それぞれの違いを理解し、用途に応じて最適なプロトコルを選定することが重要です。