SFTPとは。安全なファイル転送の方法、FTPとの違いを解説

データセンターなどの遠隔地にあるサーバーや、レンタルサーバー、クラウド上にある仮想サーバー(VPS)へファイル転送を行うには、ファイル転送プロトコルを使用します。

ファイル転送プロトコルとして有名なのはFTPですが、それ以外にも、SFTP、FTPS、SCPなど複数存在します。

本記事では、SFTP(SSH File Transfer Protocol)について詳しくご紹介します。

他のファイル転送プロトコルとの違いもあわせて解説しますので、ぜひ最後までご覧ください。

VPSならミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

SFTPとはどのようなもの?

SFTPとはどのようなプロトコルなのでしょうか。

SFTPの概要

SFTP(SSH File Transfer Protocol)は、SSHの仕組みを使ってファイル転送の通信を暗号化し、安全なファイル転送を実現するプロトコルです。

SSH(Secure Shell)は、遠隔地にあるリモートコンピュータと安全に通信するためのプロトコルで、SSHでの通信では転送されるデータが暗号化されます。

 

ファイル転送は、昔からFTPによるファイル転送が主流でした。

しかし、FTPではログイン情報や送信データの内容がそのまま通信されてしまうため、セキュリティリスクがある点が課題でした。

SFTPでは、安全にファイル転送ができるという点で、今ではSFTPの使用が推奨されています。

また、ほとんどのFTPソフトもSFTPに対応しています。

SSHやFTPについて詳しく知りたい方は、こちらの記事がおすすめです。

SFTPによるファイル転送

SFTPでは、接続時の認証において2つの認証方式に対応しています。

    • パスワード認証
    • 公開鍵認証

パスワード認証では、転送先サーバーのユーザーIDとパスワードを使用してログインします。

SFTPではログイン時に使用する情報も暗号化されるため、安全に通信を行うことができます。

もし通信がうまくいかず接続できない場合は、ポートがファイアウォールなどで閉じられている可能性があります。

転送先サーバー側でSSHが有効になっているかどうかを確認しましょう。

 

公開鍵認証では、あらかじめSSHの秘密鍵および公開鍵を生成し、転送先サーバー側に公開鍵を送ります。

実際の通信では、転送先サーバー側へ秘密鍵で暗号化したログイン情報を送ることで、認証を行います。

対象サーバーに何度もファイル転送を行う場合は、安全面を考慮して公開鍵認証方式を使用するとよいでしょう。

 

SFTPでは転送先サーバーへの接続が完了すると、ディレクトリおよびファイルの一覧の情報が取得できます。

転送先ディレクトリに移動後、転送したいファイルを選んで送信します。

誤って本来転送するファイルとは別のファイルを転送してしまった場合は、転送先サーバー側のファイルを削除するなど、ファイル管理を行うことも可能です。

 

SFTPでファイル転送を行う場合は、ファイル転送ツールを利用すると便利です。

Windowsパソコンで使用できる代表的なファイル転送ツールは、以下があります。

    • WinSCP
    • Filezilla

 

SFTP以外のファイル転送プロトコルは?

SFTPについて理解できたところで、他のファイル転送プロトコルとの違いを見ていきましょう。

FTP

昔からファイル転送プロトコルはFTP(File Transfer Protocol)が使用されていました。

FTPコマンドやFTPソフトを使用し、クライアントとサーバー間でファイルのアップロード・ダウンロードを行います。

 

FTPはデータ転送用とデータ制御用の2つのポートを使いファイル転送を行います。

複数のディレクトリを同時に転送する機能や、レジューム機能(ファイル転送がなんらかの原因で中断した場合、通信を再開する機能)があるなど、機能的にも優れています。

また、転送先サーバー側のファイルを削除するといった、ファイル管理も可能です。

 

FTPは大変便利ですが、ファイル転送の通信は「暗号化されない」というデメリットがあります。

そのため、サーバーにログインする際に使用するユーザーIDやパスワードといったログイン情報のほか、転送の内容もそのまま通信されるため、安全ではありません。

悪意のある第三者が通信を傍受すると、情報漏洩につながるだけでなく、不正アクセスにあうリスクが発生します。

このため、現在ではSFTPやFTPS、SCPといった暗号化技術によって安全にファイル転送ができるプロトコルの使用が推奨されています。

FTPS

FTPS(File Transfer Protocol over SSL/TLS)は、SFTPと同様にFTPの通信を暗号化し、安全にファイル転送が行えるプロトコルです。

FTPSとSFTPの違いは、使用する暗号化技術が異なる点です。

 

SFTPがSSHの暗号化技術を使用するのに対し、FTPSはブラウザとWebサーバー間の通信で使用されるHTTPSで使われる「SSL/TLS」の技術を使って暗号化します。

転送先サーバーでSSHが対応・非対応に関わらず使用できます。

 

SSL/TLSも秘密鍵・公開鍵を使用した暗号化方式です。

転送先サーバーに格納されているSSL証明書を使用して、データの暗号化を行います。

TLSはSSLが改良されたものですが、SSLが広く知れ渡っていることから、あわせてSSL/TLSとまとめて表記されることが多いです。

 

SFTPとFTPSの違いは、SFTPが通信に必要なポートが1つだけなのに対し、FTPSはFTPと同様2つ必要であるという点です。

また、SSHとは異なるポートが使用されるため、ファイアウォールによっては通信が妨げられる場合もあるので、注意が必要です。

SCP

SCP(Secure Copy Protocol)は、SSHの暗号化技術を使用したファイル転送プロトコルです。

SCPもSFTPと同様、どちらもセキュアなファイル転送が可能であり、さらにSCPはSFTPよりも通信速度が早いという特徴があります。

ただし、あくまでSCPができるのはファイル転送のみです。

例えば、誤ったファイルをアップロードしてしまった場合のファイルの削除や、レジューム機能がありません。

大容量データのファイルを転送した際に中断すると最初から転送をやり直すことになるため、その場合はSFTPの利用がおすすめです。

Unix系OS専門のホスティングサービス「ミライサーバー」

SFTPと他のファイル転送プロトコルの比較

先述のFTPやSCPとSFTPは、どのような点で異なっているのでしょうか。

それぞれのメリットとデメリットを整理しました。

 メリットデメリット
FTP・ファイル管理やレジューム機能が利用可能・通信が暗号化されず、セキュリティリスクが高い
SFTP・ファイル管理やレジューム機能が利用可能
・SSHによる暗号化により安全な通信を実現
・必要な通信ポートが1つで済む
・SCPに比べて通信速度が遅い
FTPS・ファイル管理やレジューム機能が利用可能・ファイアウォールではじかれる可能性がある
SCP・SSHによる暗号化により安全な通信を実現
・高速なファイル転送が可能
・ファイルの管理ができる
・レジューム機能がない

ファイル転送プロトコルは複数ありますが、ファイル転送を行うなら安全に通信ができるSFTPやFTPS、SCPを使用しましょう。

まとめ

本記事では、SFTPをはじめとするファイル転送プロトコルについて解説しました。

遠隔地のサーバーや、VPSなどの仮想サーバーを使用する場合、ファイル転送プロトコルは必須のスキルです。

ファイル転送を行う場合は、安全面を考慮して暗号化通信ができるプロトコルを選択することが大切であるため、今回ご紹介した内容をしっかり理解しておきましょう。

また、同じ暗号化通信による「SFTP」「FTPS」「SCP」にも、機能や暗号化方式に違いがあるので、覚えておくとよいでしょう。

ファイル転送を行う場合は、FTPと同じように扱えて安全に通信できるSFTPがおすすめです。

SFTPでのファイル転送方法を理解し、実際に使用できるようにしてください。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
また、UbuntuDebianAlmaLinuxなどの豊富なラインアップから、OSを選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

おすすめ記事 最近の記事
  1. VPSに申込み、SSH接続するまでの流れ【ミライサーバー】

  2. KUSANAGIとは。超高速CMS実行環境でWordPressが高速に!

  3. レンタルサーバーからVPSへの移行!方法や注意点を解説

  1. 「侍エンジニアブログ」に掲載されました(2024年4月)

  2. プログラミングとは。基礎知識と活用方法を解説!

  3. 【初心者向け】PHPプログラムの実行方法を詳しく解説!

ランキング

  1. 1

    Ubuntu 22.04 LTSでのIPアドレス設定方法。コマンドも紹介

  2. 2

    UbuntuにSSHサーバーを構築し、SSHに接続する手順【初心者向け】

  3. 3

    SSH接続とは。リモートコンピューターへの接続方法をわかりやすく解説

カテゴリー

TOP