SSH File Transfer Protocol(SFTP)は、信頼性の高いデータストリーム英語版上でのファイル転送ファイル管理を提供する通信プロトコルである。Internet Engineering Task Force(IETF)によって、安全なファイル転送機能を提供するためにSecure Shellバージョン2.0(SSH-2)の拡張として設計された。IETFのインターネットドラフトでは、このプロトコルはSSH-2に関連付けて説明されているが、TLS(Transport Layer Security)経由の安全なファイル転送や、VPNアプリケーションの管理情報の転送など、さまざまなアプリケーションで使用できると述べられている。

このプロトコルは、SSHなどのセキュアな通信路英語版で実行されること、サーバが既にクライアントを認証していること、クライアントユーザのIDがプロトコルで利用可能であることを前提としている。

概要

編集

Secure copy(SCP)がファイル転送のみが可能であるのに対して、SFTPでは、リモートファイルシステムプロトコルのようにリモートファイルに対する一連の操作が可能である。SFTPクライアントの追加機能には、中断された転送の再開、ディレクトリリスト、リモートファイルの削除がある[1]

SFTPはSCPと比べてできるだけプラットフォームに依存しないように設計されている。例えば、SCPではクライアントが指定したワイルドカードの拡張はサーバの実装次第であるが、SFTPの設計ではこの問題を回避できる。SCPサーバの実装はUNIXプラットフォームで行われることが多いが、SFTPサーバはほとんどのプラットフォームで利用可能である。SFTPと比較して、SCPでのファイル転送は高速である。SFTPでは、他のメカニズムのようにセッションを終了することなく、ファイル転送のみを簡単に終了できる。

SFTPは、SSH上で実行されるFTPではなく、IETF SECSHワーキンググループによってゼロから設計された新しいプロトコルである。同じ略称のSimple File Transfer Protocolと混同される場合がある[1]

SFTPのプロトコル自体は認証とセキュリティを提供せず、基礎となるプロトコルがこれを保護することを期待している。SFTPは、同じワーキンググループによって設計されたSSHバージョン2(SSH-2)実装のサブシステムとして最もよく使用される。ただし、SSH-1や他のデータストリームでも実行できる。SSH-1はサブシステムの概念に対応していないため、SFTPサーバをSSH-1上で実行させることはプラットフォームに依存する。SSH-1サーバに接続しようとするSFTPクライアントは、サーバ側のSFTPサーババイナリへのパスを知る必要がある。

アップロードされたファイルは、ローカル側のタイムスタンプなどの基本的な属性を引き継ぐ場合がある。これは、一般的なFTPプロトコルよりも優れている点である。

開発の歴史

編集

IETFのワーキンググループ"Secsh"は、過去にSecure Shellバージョン2(RFC 4251)の開発を担当しており、同グループは安全なファイル転送機能の標準の拡張案を作成しようとした。インターネットドラフトが作成され、以降、逐次新しいバージョンに改訂されていった[2]。ソフトウェア業界は、ドラフトが標準化される前の様々なバージョンで実装を開始した。開発作業が進むにつれて、Secshファイル転送プロジェクトの範囲が拡大し、ファイルアクセスとファイル管理が含まれるようになった。

最終的には、一部の委員会メンバーがSFTPを単なるファイルアクセスプロトコルあるいはファイル転送プロトコルではなく「ファイルシステムプロトコル」であると見なし、ワーキンググループの範囲を超えてSFTPの開発に当たるようになり、開発が停滞した[3]。7年間の休止の後の2013年、バージョン3ドラフトをベースラインとして、SFTPの開発作業を再開しようとした。

バージョン0〜2

編集

IETFが関与する前は、SFTPはSSHコミュニケーションズ・セキュリティ英語版の独自プロトコルで、1997年にSami Lehtinenの支援を受けてTatu Ylönenによって設計された.[4]。バージョン0〜2とバージョン3との違いは、section 10 of draft-ietf-secsh-filexfer-02のsection 10に列挙されている。

バージョン3

編集

IETF Secure Shell File Transferプロジェクトの立ち上げ時に、Secshワーキンググループは、SFTPの目的は、信頼できるデータストリーム上で安全なファイル転送機能を提供し、SSH-2プロトコルで使用する標準のファイル転送プロトコルにすることであると表明している。

インターネットドラフトのDraft 00 - 02では、プロトコルのバージョン3が定義されている。

バージョン4

編集

インターネットドラフトのDraft 03 - 04では、プロトコルのバージョン4が定義されている。

バージョン5

編集

インターネットドラフトのDraft 05では、プロトコルのバージョン5が定義されている。

バージョン6

編集

インターネットドラフトのDraft 06 - 13では、プロトコルのバージョン6が定義されている。

ソフトウェア

編集

SFTPクライアント

編集

SFTP (sftp)という言葉は、このプロトコルのクライアント部分を実装するコマンドラインプログラムを指すこともある。例えば、OpenSSHにはsftpコマンドがサブシステムとして含まれる[5]

scpクライアントの一部の実装は、サーバが対応するものに応じて、ファイル転送を実行するためにSFTPプロトコルとSCPプロトコルの両方に対応する。

このSFTPを利用できるアプリケーションには、コマンドライン形式のsftpコマンドだけでなく、以下のものが存在する。

SFTPサーバ

編集

FTPサーバの一部にはSFTPプロトコルを実装しているものもあるが、SFTPプロトコルへの対応は通常、SSHサーバの実装によって提供される。これは、SFTPプロトコルがデフォルトのポート22を他のSSHサービスと共有するためである。

関連項目

編集

脚注

編集
  1. ^ a b Barrett, Daniel; Silverman, Richard E. (2001), SSH, The Secure Shell: The Definitive Guide, Cambridge: O'Reilly, ISBN 0-596-00011-1 
  2. ^ Secsh Status Pages”. Tools.ietf.org. 2012年8月20日閲覧。
  3. ^ ietf.secsh - Formal consultation prior to closing the secsh working group - msg#00010 - Recent Discussion”. Osdir.com (2006年8月14日). 2012年3月20日時点のオリジナルよりアーカイブ。2012年8月20日閲覧。
  4. ^ ftp://ftp.ietf.org/ietf-mail-archive/secsh/2012-09.mail
  5. ^ OpenBSD manual page for the "sftp" command: "See Also" section”. OpenBSD.org. 2018年2月4日閲覧。

外部リンク

編集

📚 Artikel Terkait di Wikipedia

File Transfer Protocol

タは暗号化されず、平文でやり取りされる。そのため現在では、FTPの通信をSSL/TLSにより保護したFTPSや、SSHの仕組みを利用したSSH File Transfer Protocol(SFTP)などの代替のプロトコルに置き換えられている。 用途としては ウェブページ用各種データファイル(HTM

Secure Shell

^ SSH接続への中間者攻撃を可能にするエクスプロイト「Terrapin Attack」が発見される (Gigazine, 2023年12月20日) TLS Telnet File Transfer Protocol SSH File Transfer Protocol Secure copy

Trivial File Transfer Protocol

Trivial File Transfer Protocol(トリビアル ファイル トランスファー プロトコル、TFTP)は、UDPを用いてコンピュータ間でファイルを転送するためのプロトコルである。FTPに比べて軽量・単純なプロトコルである。認証機能が無いためにユーザ名やパスワードを必要としない。ポ

FTPS

FTPS (File Transfer Protocol over SSL/TLS) は、FTPで送受信するデータをTLSまたはSSLで暗号化する通信プロトコル。IETFにより、RFC 2228 や RFC 4217 で標準化されている。 既定のポート番号は、ポート990(TCP)とポート989(T

通信プロトコル

Protocol AFP Apple Filing Protocol PIDF HTTP HyperText Transfer Protocol、 World Wide Webで利用されている SMTP Simple Mail Transfer Protocol FTP File Transfer

アプリケーション層

Simple Mail Transfer Protocol SNMP Simple Network Management Protocol SNTP, Simple Network Time Protocol SOAP RDP, Remote Desktop Protocol SSH, Secure Shell

ファイル転送

例: File Transfer Protocol(FTP) - 古くから使われているクロスプラットフォームのファイル転送プロトコル。 SSH File Transfer Protocol - Secure Shell(SSH)によって保護されたファイル転送プロトコル

Secure copy

Shell(ssh)に含まれるsshの機能を使ってセキュリティの高い(セキュアな)ファイル転送を行うコマンドの一つである。scpで使用される通信プロトコルは、Secure Copy Protocol(SCP)と呼ばれる。 SSHを介してファイル転送を行うプロトコルとしてはSSH File Transfer