IT用語集

SFTPとは? わかりやすく10分で解説

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

SFTP(SSH File Transfer Protocol)は、SSH(Secure Shell)の仕組みを利用してファイル転送を安全に行うためのプロトコルです。FTPと似た操作感で使える一方、通信の暗号化、改ざん検知、サーバー真正性の確認といった機能を標準で備えており、インターネット越しのファイル転送において現実的な選択肢となっています。本記事では、SFTPの基本、SSHとの関係、FTPとの違い、運用上の考え方、実際の使い方を整理します。

はじめに

SFTPとは何か?

SFTPは、一般にSSH File Transfer Protocol(SSH上で動作するファイル転送プロトコル)を指します。SFTPはSSHセッションの中で動作するため、通信は暗号化され、盗聴・改ざん・なりすましといったリスクを抑えられます。

なお、「Secure File Transfer Protocol」と説明されることもありますが、混乱を避けるためには「SSH File Transfer Protocol(SSH上のファイル転送)」として理解するのが無難です。また、SFTPはFTPS(FTP over TLS)とは別物であり、名称が似ていてもプロトコル体系は異なります。

SFTPは、機密性の高いデータを扱う場面(取引先とのファイル受け渡し、バックアップ連携、システム間データ連携など)で広く利用されています。SSHの通信路上で動作するため、通信全体が暗号化され、認証とデータ転送が同一セッション内で完結する点が特徴です。

SFTPの歴史

FTP(File Transfer Protocol)は長く使われてきましたが、標準のFTPではユーザー名・パスワードやデータが平文で流れるため、盗聴や改ざんに弱いという課題がありました。こうした背景から、暗号化された通信路でファイル転送を行う方式が求められ、SSHの普及とともにSFTPが利用されるようになりました。

ただし、「IETFがFTPの課題解決のためにSFTPを開発した」と断定するのは適切ではありません。SFTPはSSHと密接に結び付いた仕様であり、RFCとしての整理や実装の普及も、SSHの広がりと並行して進んだと捉えるほうが正確です。

SFTPの基本

SFTPはSSHを前提としており、主に次の性質を引き継ぎます。

  • 暗号化:通信内容を暗号化し、盗聴を防ぎます。
  • 完全性(改ざん検知):通信途中の改ざんを検知できます。
  • 認証:パスワード認証や公開鍵認証により接続ユーザーを確認します。
  • サーバー真正性の確認:ホスト鍵を用いて、接続先が想定どおりか確認できます(初回接続時の検証が重要です)。

一方で、WAN転送速度の最適化中断からの自動回復は、SFTPプロトコル自体が保証する機能というより、クライアント製品の実装や運用設計(再送、分割転送、再開機能、帯域制御など)で実現される領域です。「SFTPの標準機能」として断定的に扱わない配慮が必要です。

SFTPの使用シーン

SFTPは、たとえば次のような場面で採用されます。

  • 企業間のデータ連携:請求データ、受発注データ、ログ、成果物の受け渡しなど
  • システム間の自動連携:バッチ処理による定期ファイル転送、バックアップ連携など
  • 管理者運用:サーバーへの安全なファイル配置(構成ファイル、成果物、配布物)

「個人情報やクレジットカード情報の転送にはSFTPが推奨される」といった一般論は成り立ちますが、実務では暗号化に加え、アクセス制御、ログ監査、鍵管理、誤送信対策まで含めた設計が求められます。

SSHとの関係

SFTPはSSH上で動作するため、SSHの理解はSFTP運用の精度に直結します。

SSHとは何か?

SSH(Secure Shell)は、暗号化された通信を用いてリモートログインやコマンド実行、ポートフォワーディングなどを行うためのプロトコルです。Telnetやrloginのような平文通信の代替として普及しました。

SSHでは、ユーザー認証(パスワード、公開鍵など)に加え、接続先サーバーを識別するためのホスト鍵が重要です。初回接続時のホスト鍵確認を怠ると、中間者攻撃などのリスクに気づけない可能性があります。

SSHの暗号化方式

SSHは通信内容を暗号化し、秘匿性と改ざん検知を確保します。暗号方式の選択は実装や設定に依存しますが、重要なのは「安全とされているアルゴリズムや鍵長、設定」を継続的に維持することです。

SFTPとSSHの関連性

SFTPはSSH接続の中で動作するため、SFTPの安全性はSSHの設定品質(認証方式、暗号設定、鍵管理、アクセス制御)に大きく影響されます。言い換えると、SFTPはSSH上に構築されたファイル転送プロトコルです。

SSHとSFTPの主な違い

SSHはリモート操作のための仕組みであり、SFTPはその上でファイル転送に特化した機能です。用途としては次のように整理できます。

  • SSH:サーバーへ安全に接続し、操作する
  • SFTP:SSH上でファイルを安全に送受信・管理する

FTPとSFTPの比較

FTPとは何か?

FTP(File Transfer Protocol)は、ネットワーク越しにファイルを転送するための古典的なプロトコルです。クライアント/サーバーモデルで動作し、ファイルの取得・送信・削除・名前変更などを行えます。

一方で、標準FTPは暗号化を前提としていないため、認証情報やデータが平文で流れ、盗聴や改ざんのリスクがあります。

FTPとSFTPの基本的な違い

FTPとSFTPは名称が似ているだけで、プロトコルとしては別系統です。主な違いは次のとおりです。

  • FTP:暗号化なし(標準設定では平文)。制御用とデータ用で接続が分かれ、ファイアウォールやNAT越しの設計が複雑になる場合があります。
  • SFTP:SSH上で暗号化通信を行い、通常は単一セッション(一般にTCP/22)で完結します。

また、FTPの暗号化版としてFTPS(FTP over TLS)がありますが、SFTPとは運用設計(ポート、実装、相互運用性)が異なります。

FTPとSFTPのセキュリティ比較

標準FTPは暗号化されないため、盗聴や改ざんに弱い点が本質的な課題です。SFTPはSSHの暗号化と完全性保護により、この点を大きく改善できます。

ただし、SFTPであっても設定や運用が不十分であれば安全性は確保できません。弱いパスワード、ずさんな鍵管理、ホスト鍵未確認、過剰な権限付与などは典型的なリスク要因です。

FTPからSFTPへの移行のメリット

FTPからSFTPへ移行する主な利点は、通信の暗号化認証強化(鍵認証など)を前提に設計しやすい点です。単一セッションで完結するため、ネットワーク設計や運用が整理しやすくなる場合もあります。

一方で、移行時にはクライアントの更新、鍵の配布と管理、アクセス権限設計、ログ監査など、運用面の整備が必要になります。

SFTPを有効に利用するために

鍵認証を使用した安全なログイン方法

SFTPではパスワード認証も利用できますが、実務では公開鍵認証が採用されることが多くあります。公開鍵認証では、サーバーに公開鍵、クライアントに秘密鍵を保持し、秘密鍵を用いて認証を行います。

重要なのは、秘密鍵を漏えいさせない運用です。端末の暗号化、秘密鍵へのパスフレーズ設定、鍵の廃止やローテーションを含めたライフサイクル管理が求められます。

また、「公開鍵を定期的に更新する」ことよりも、実務では鍵の棚卸しと失効、退職や端末紛失時の即時無効化、不要鍵の削除を優先したほうが効果的なケースも多く見られます。

ファイル転送時の暗号化の重要性

SFTPは通信路上のデータを暗号化します。これは転送中の保護を意味しており、必要に応じてファイル自体の暗号化(PGPなど)や、保管時の暗号化を別途検討します。

暗号方式についても注意が必要です。たとえば3DESは現在では古い方式として扱われることが多く、推奨設定として安易に並べるべきではありません。実務では、利用しているSSH実装の推奨設定に従い、弱い暗号スイートを無効化する方向で整備します。

ユーザー権限の適切な設定

SFTP運用では最小権限の考え方が基本です。ユーザーごとにアクセス可能なディレクトリを限定し、不要な削除や上書き、一覧取得などを許可しない設計が有効です。

用途によっては、SFTP専用ユーザーを作成し、シェルログインを禁止する、chrootでアクセス範囲を制限するといったサーバー側の制約を組み合わせることで、安全性を高められます。

パスワードポリシーの推奨事項

パスワード認証を併用する場合は、長さや複雑性、使い回し禁止、失敗回数制限、多要素認証の検討などを含むポリシーが必要です。ただし、可能であれば鍵認証を基本とし、パスワード認証を無効化するほうが攻撃面を減らせる場合があります。

SFTPの実際の使用方法

ここでは、SFTPの基本的な使い方を「クライアント導入」「接続」「転送」に分けて整理します。

SFTPクライアントのインストール方法

SFTPを利用するには、SFTP対応クライアントを用意します。Windows環境では、WinSCPやFileZillaなどが代表例です(FileZillaは設定によって平文FTPになる場合があるため、プロトコル選択に注意が必要です)。

インストール後は、接続設定でプロトコルがSFTPになっていることを必ず確認します。

SFTPサーバーへの接続方法

接続時には、ホスト名(またはIPアドレス)、ポート(一般に22)、ユーザー名、認証方式が必要です。初回接続時に表示されるホスト鍵の指紋は、事前に共有された情報と照合できると安全です。

ファイルのアップロードとダウンロードの方法

接続後は、クライアントの操作画面からアップロードやダウンロードを行います。自動連携用途では、SFTP対応のスクリプトや連携製品を用いて定期転送を行うケースもあります。

運用面では、転送結果の記録、再送判断、ファイルの重複や取り違えを防ぐ命名規則や配置先分離まで設計しておくと、トラブルを減らしやすくなります。

一般的なエラーメッセージとその解決策

よくある原因は次のとおりです。

  • 接続できない:ホスト名やポート、ネットワーク到達性、ファイアウォール設定、SSHサービスの稼働状況を確認します。
  • 認証に失敗する:ユーザー名、鍵の配置、秘密鍵のパスフレーズ、許可された認証方式、サーバー側の鍵登録状況を確認します。
  • アクセス権がない:ディレクトリ権限、chroot制約、書き込み可否を確認します。
  • ホスト鍵警告:サーバー変更や中間者攻撃の可能性もあるため、指紋を確認して原因を特定します。

以上がSFTPの基本です。SFTPは「暗号化されているから安心」ではなく、SSH設定、鍵管理、権限設計、ログ監査まで含めて初めて安全な運用になります。

FAQ

SFTPとは何ですか?

SFTPはSSH上で動作するファイル転送プロトコル(SSH File Transfer Protocol)で、通信を暗号化して安全にファイルを送受信できます。

SFTPとFTPSの違いは何ですか?

SFTPはSSH上で動作し、FTPSはFTPにTLSを重ねた方式です。名前が似ていますが、プロトコル体系や運用設計(ポートや相互運用性)が異なります。

SFTPは「Secure File Transfer Protocol」の略ですか?

一般にはSSH File Transfer Protocolとして理解するのが確実です。「Secure〜」と説明されることもありますが、混乱を避けるためSSH上のファイル転送として捉えるのが安全です。

SFTPはなぜ安全なのですか?

SSHの暗号化・改ざん検知・認証により、盗聴や改ざんのリスクを低減できるためです。加えて、ホスト鍵により接続先の真正性確認も行えます。

SFTPのデフォルトポートは何番ですか?

一般にSSHと同じTCP/22が使われます。ただし、環境によって変更される場合があります。

SFTPではパスワード認証と鍵認証のどちらがよいですか?

一般に公開鍵認証が推奨されます。パスワード総当たりなどのリスクを減らしやすく、運用設計次第で安全性を高められます。

初回接続時に表示されるホスト鍵の警告は無視してよいですか?

無視せず確認すべきです。サーバー変更の場合もありますが、中間者攻撃の可能性もあるため、事前に共有された指紋と照合するのが安全です。

SFTPでよくある「Permission denied」は何が原因ですか?

ユーザー名の誤り、鍵登録ミス、認証方式の不一致、ディレクトリ権限不足、chroot制約などが主因です。サーバー側ログも合わせて確認します。

FTPからSFTPに移行するメリットは何ですか?

通信の暗号化と認証強化を前提にでき、盗聴・改ざんリスクを低減できます。単一セッションで完結しやすく、運用設計が整理しやすい場合もあります。

SFTP運用で最初に整備すべきことは何ですか?

公開鍵/秘密鍵の管理(配布・失効・棚卸し)、最小権限のアクセス設計、SSHの安全設定、ログ取得と監査の仕組みを優先して整備します。

記事を書いた人

ソリトンシステムズ・マーケティングチーム