SFTP 【SSH File Transfer Protocol】
概要
SFTP(SSH File Transfer Protocol)とは、SSHで暗号化された通信路を使って安全にファイルを送受信するプロトコル。また、これを利用して暗号化されたファイル送受信を行うコマンド。LinuxなどのUNIX系OS向けのSSHパッケージが標準で対応しているほか、Windowsなどから利用できるクライアントソフトもある。SSH(Secure Shell)はネットワークを通じて他のコンピュータに接続し、文字列による対話的な操作を行うことができるソフトウェアおよび通信プロトコルの一つで、送受信するデータを暗号化して伝送途上の盗聴や改竄から保護することができる。
SFTPはSSH接続で形成された暗号化された伝送路を用いてファイルの送受信を行う仕組みで、SSH上で「sftp」というコマンドを発行してファイルの指定や転送の開始などを指示する。コマンド体系などはFTP(File Transfer Protocol)によく似ており、同じような手順で利用できるが、内部的な仕様や実装方式はFTPとは異なり、直接の互換性は無い。
サーバ側でSFTPの機能は通常はSSHサーバによって提供されるが、FTPサーバがSSH接続に対応し、SFTP機能を提供する例もある。クライアント側ではSSHクライアントやFTPクライアントの追加機能としてSFTP対応が提供されることが多い。
SSH自体にもリモート側とローカル側でファイルを複製する「scp」コマンドがあり、仕様が簡潔でファイルの転送効率はSFTPより優れているとされる。SFTPはファイル一覧の取得やリモート側のファイルの削除、転送中断後の途中からの再開などにも対応し、scpより機能が豊富である。
一方、トランスポート層の暗号化プロトコルであるSSL/TLSで暗号化された伝送路を形成し、その上で通常のFTPを用いてファイル転送を行う仕組みもあり、「FTPS」(FTP over SSL/TLS)という。SSL/TLSを併用する以外はFTPそのものであるため、仕様や実装はSFTPとは大きく異なる。
(2024.2.26更新)