SFTP(SSH File Transfer Protocol)は、SSH(Secure Shell)の仕組みを利用してファイル転送を安全に行うためのプロトコルです。FTPと似た操作感で使える一方、通信の暗号化、改ざん検知、サーバー真正性の確認といった機能を標準で備えており、インターネット越しのファイル転送において現実的な選択肢となっています。本記事では、SFTPの基本、SSHとの関係、FTPとの違い、運用上の考え方、実際の使い方を整理します。
SFTPは、一般にSSH File Transfer Protocol(SSH上で動作するファイル転送プロトコル)を指します。SFTPはSSHセッションの中で動作するため、通信は暗号化され、盗聴・改ざん・なりすましといったリスクを抑えられます。
なお、「Secure File Transfer Protocol」と説明されることもありますが、混乱を避けるためには「SSH File Transfer Protocol(SSH上のファイル転送)」として理解するのが無難です。また、SFTPはFTPS(FTP over TLS)とは別物であり、名称が似ていてもプロトコル体系は異なります。
SFTPは、機密性の高いデータを扱う場面(取引先とのファイル受け渡し、バックアップ連携、システム間データ連携など)で広く利用されています。SSHの通信路上で動作するため、通信全体が暗号化され、認証とデータ転送が同一セッション内で完結する点が特徴です。

FTP(File Transfer Protocol)は長く使われてきましたが、標準のFTPではユーザー名・パスワードやデータが平文で流れるため、盗聴や改ざんに弱いという課題がありました。こうした背景から、暗号化された通信路でファイル転送を行う方式が求められ、SSHの普及とともにSFTPが利用されるようになりました。
ただし、「IETFがFTPの課題解決のためにSFTPを開発した」と断定するのは適切ではありません。SFTPはSSHと密接に結び付いた仕様であり、RFCとしての整理や実装の普及も、SSHの広がりと並行して進んだと捉えるほうが正確です。
SFTPはSSHを前提としており、主に次の性質を引き継ぎます。
一方で、WAN転送速度の最適化や中断からの自動回復は、SFTPプロトコル自体が保証する機能というより、クライアント製品の実装や運用設計(再送、分割転送、再開機能、帯域制御など)で実現される領域です。「SFTPの標準機能」として断定的に扱わない配慮が必要です。
SFTPは、たとえば次のような場面で採用されます。
「個人情報やクレジットカード情報の転送にはSFTPが推奨される」といった一般論は成り立ちますが、実務では暗号化に加え、アクセス制御、ログ監査、鍵管理、誤送信対策まで含めた設計が求められます。
SFTPはSSH上で動作するため、SSHの理解はSFTP運用の精度に直結します。
SSH(Secure Shell)は、暗号化された通信を用いてリモートログインやコマンド実行、ポートフォワーディングなどを行うためのプロトコルです。Telnetやrloginのような平文通信の代替として普及しました。
SSHでは、ユーザー認証(パスワード、公開鍵など)に加え、接続先サーバーを識別するためのホスト鍵が重要です。初回接続時のホスト鍵確認を怠ると、中間者攻撃などのリスクに気づけない可能性があります。
SSHは通信内容を暗号化し、秘匿性と改ざん検知を確保します。暗号方式の選択は実装や設定に依存しますが、重要なのは「安全とされているアルゴリズムや鍵長、設定」を継続的に維持することです。
SFTPはSSH接続の中で動作するため、SFTPの安全性はSSHの設定品質(認証方式、暗号設定、鍵管理、アクセス制御)に大きく影響されます。言い換えると、SFTPはSSH上に構築されたファイル転送プロトコルです。
SSHはリモート操作のための仕組みであり、SFTPはその上でファイル転送に特化した機能です。用途としては次のように整理できます。
FTP(File Transfer Protocol)は、ネットワーク越しにファイルを転送するための古典的なプロトコルです。クライアント/サーバーモデルで動作し、ファイルの取得・送信・削除・名前変更などを行えます。
一方で、標準FTPは暗号化を前提としていないため、認証情報やデータが平文で流れ、盗聴や改ざんのリスクがあります。
FTPとSFTPは名称が似ているだけで、プロトコルとしては別系統です。主な違いは次のとおりです。
また、FTPの暗号化版としてFTPS(FTP over TLS)がありますが、SFTPとは運用設計(ポート、実装、相互運用性)が異なります。
標準FTPは暗号化されないため、盗聴や改ざんに弱い点が本質的な課題です。SFTPはSSHの暗号化と完全性保護により、この点を大きく改善できます。
ただし、SFTPであっても設定や運用が不十分であれば安全性は確保できません。弱いパスワード、ずさんな鍵管理、ホスト鍵未確認、過剰な権限付与などは典型的なリスク要因です。
FTPからSFTPへ移行する主な利点は、通信の暗号化と認証強化(鍵認証など)を前提に設計しやすい点です。単一セッションで完結するため、ネットワーク設計や運用が整理しやすくなる場合もあります。
一方で、移行時にはクライアントの更新、鍵の配布と管理、アクセス権限設計、ログ監査など、運用面の整備が必要になります。
SFTPではパスワード認証も利用できますが、実務では公開鍵認証が採用されることが多くあります。公開鍵認証では、サーバーに公開鍵、クライアントに秘密鍵を保持し、秘密鍵を用いて認証を行います。
重要なのは、秘密鍵を漏えいさせない運用です。端末の暗号化、秘密鍵へのパスフレーズ設定、鍵の廃止やローテーションを含めたライフサイクル管理が求められます。
また、「公開鍵を定期的に更新する」ことよりも、実務では鍵の棚卸しと失効、退職や端末紛失時の即時無効化、不要鍵の削除を優先したほうが効果的なケースも多く見られます。
SFTPは通信路上のデータを暗号化します。これは転送中の保護を意味しており、必要に応じてファイル自体の暗号化(PGPなど)や、保管時の暗号化を別途検討します。
暗号方式についても注意が必要です。たとえば3DESは現在では古い方式として扱われることが多く、推奨設定として安易に並べるべきではありません。実務では、利用しているSSH実装の推奨設定に従い、弱い暗号スイートを無効化する方向で整備します。
SFTP運用では最小権限の考え方が基本です。ユーザーごとにアクセス可能なディレクトリを限定し、不要な削除や上書き、一覧取得などを許可しない設計が有効です。
用途によっては、SFTP専用ユーザーを作成し、シェルログインを禁止する、chrootでアクセス範囲を制限するといったサーバー側の制約を組み合わせることで、安全性を高められます。
パスワード認証を併用する場合は、長さや複雑性、使い回し禁止、失敗回数制限、多要素認証の検討などを含むポリシーが必要です。ただし、可能であれば鍵認証を基本とし、パスワード認証を無効化するほうが攻撃面を減らせる場合があります。
ここでは、SFTPの基本的な使い方を「クライアント導入」「接続」「転送」に分けて整理します。
SFTPを利用するには、SFTP対応クライアントを用意します。Windows環境では、WinSCPやFileZillaなどが代表例です(FileZillaは設定によって平文FTPになる場合があるため、プロトコル選択に注意が必要です)。
インストール後は、接続設定でプロトコルがSFTPになっていることを必ず確認します。
接続時には、ホスト名(またはIPアドレス)、ポート(一般に22)、ユーザー名、認証方式が必要です。初回接続時に表示されるホスト鍵の指紋は、事前に共有された情報と照合できると安全です。
接続後は、クライアントの操作画面からアップロードやダウンロードを行います。自動連携用途では、SFTP対応のスクリプトや連携製品を用いて定期転送を行うケースもあります。
運用面では、転送結果の記録、再送判断、ファイルの重複や取り違えを防ぐ命名規則や配置先分離まで設計しておくと、トラブルを減らしやすくなります。
よくある原因は次のとおりです。
以上がSFTPの基本です。SFTPは「暗号化されているから安心」ではなく、SSH設定、鍵管理、権限設計、ログ監査まで含めて初めて安全な運用になります。
SFTPはSSH上で動作するファイル転送プロトコル(SSH File Transfer Protocol)で、通信を暗号化して安全にファイルを送受信できます。
SFTPはSSH上で動作し、FTPSはFTPにTLSを重ねた方式です。名前が似ていますが、プロトコル体系や運用設計(ポートや相互運用性)が異なります。
一般にはSSH File Transfer Protocolとして理解するのが確実です。「Secure〜」と説明されることもありますが、混乱を避けるためSSH上のファイル転送として捉えるのが安全です。
SSHの暗号化・改ざん検知・認証により、盗聴や改ざんのリスクを低減できるためです。加えて、ホスト鍵により接続先の真正性確認も行えます。
一般にSSHと同じTCP/22が使われます。ただし、環境によって変更される場合があります。
一般に公開鍵認証が推奨されます。パスワード総当たりなどのリスクを減らしやすく、運用設計次第で安全性を高められます。
無視せず確認すべきです。サーバー変更の場合もありますが、中間者攻撃の可能性もあるため、事前に共有された指紋と照合するのが安全です。
ユーザー名の誤り、鍵登録ミス、認証方式の不一致、ディレクトリ権限不足、chroot制約などが主因です。サーバー側ログも合わせて確認します。
通信の暗号化と認証強化を前提にでき、盗聴・改ざんリスクを低減できます。単一セッションで完結しやすく、運用設計が整理しやすい場合もあります。
公開鍵/秘密鍵の管理(配布・失効・棚卸し)、最小権限のアクセス設計、SSHの安全設定、ログ取得と監査の仕組みを優先して整備します。