Linux
 Computer >> コンピューター >  >> システム >> Linux

SCPとSFTPの違いを徹底解説!ファイル転送にはどちらを使うべきか

SCPとSFTPの違いを徹底解説!ファイル転送にはどちらを使うべきか

SCP(Secure Copy Protocol)とSFTP(Secure File Transfer Protocol)は、ローカル環境での不定期なファイル転送に便利なFTP(File Transfer Protocol)の代替手段として広く利用されているプロトコルです。この3つはいずれも、Ethernet経由でファイルをある場所から別の場所へ移動するために役立ちます。ただし、FTPがデータを平文で送信するのに対し、SCPとSFTPの2つはSSH(Secure Shell)プロトコルを使用して通信を行う点が大きく異なります。

SCPとSFTPとは何か?

SCP(Secure Copy Protocol)

SCPとSFTPの違いを徹底解説!ファイル転送にはどちらを使うべきか

SCPは、シェルとリモートコマンドのみを使用して、2台のコンピュータ間でファイルを安全に送受信する非対話型のファイル転送方式です。旧来のRCP(Remote Copy Protocol)のセキュア版にあたり、認証にはSSHプロトコルを使用しますが、コマンドラインの構文はRCPとよく似ています。

SFTPユーティリティを強くベースとしているため、スクリプトを使って無人でのファイル転送をセットアップする場合には、SCPの方がより適した選択肢となることが多いです。

SCPのコマンドは、サーバーへのファイル送信と取得の両方に使用できます。基本的な仕組みとしては、ファイルのバイト列をSSHトンネル上に書き込み、整合性チェックや圧縮といった複雑な処理はSSH側に任せる形になります。

また、SCPはワイルドカードにも対応しており、指定した条件に基づいて複数のファイルをまとめて転送することも可能です。これらのワイルドカードは、ファイルの送信・受信のどちらにも使用できます。

さらに、ローカルとリモート間だけでなく、あるリモートホストから別のリモートホストへ直接ファイルをコピーすることもできます。

SFTP(Secure File Transfer Protocol)

SCPとSFTPの違いを徹底解説!ファイル転送にはどちらを使うべきか

非対話型のSCPとは異なり、SFTPは暗号化されたSSHトランスポート上ですべての操作を実行する、対話型のファイル転送プロトコル(およびプログラム)です。

圧縮や公開鍵認証などのさまざまな機能を活用して特定のホストに接続・ログインし、対話型のコマンドモードに入ります。

なお「SFTP」という名称は、「Simple File Transfer Protocol」と「SSH File Transfer Protocol」の2つの意味で使われることがあります。後者はSSHと組み合わせて安全なファイル転送を行うために設計されたものであり、一方のSimple File Transfer Protocolは軽量版FTPですが、TFTPに取って代わられて廃止されたプロトコルで、TCPポート115を使用していました。現在一般的にSFTPと呼ばれているのは、SSH File Transfer Protocolの方です。

SFTPは、非対話型の認証方式を使用している場合は自動的にファイルを取得でき、そうでない場合は対話型認証が成功した後にファイルを取得します。

多くのプロトコルと連携して動作しますが、SFTPが安全な認証のために一般的に使用するのはSSHです。

注意: SFTPは「SSH上のFTP」ではなく、まったく新しい独立したプロトコルである点に留意してください。

SCPとSFTPの違い

両者のファイル転送プログラムには共通点もあります。どちらもTCPポート22を使用し、SSH上で動作するため、セキュリティの面では同等と言えます。

また、通信中データの暗号化や公開鍵認証といった機能も両方に備わっています。さらに、どちらのプロトコルもファイルサイズの上限がないため、大容量ファイルの転送にも対応しています。

SCPとSFTPの主な違いは、その仕様と機能にあります。以下、項目ごとに詳しく見ていきましょう。

機能性

SCPは盗聴からの保護を備えたデータ転送に特化している一方、SFTPはファイルへのアクセス、転送、管理という3つの機能を担います。

つまり、SCPはネットワークで接続された2台のコンピュータ間、あるいはインターネット経由のリモート間での一回限りのファイル転送に適しているのに対し、SFTPはそれに加えてデータ管理まで行えるのが特徴です。

操作内容

SCPでは、リモートディレクトリの一覧表示やファイル削除などの操作は行えず、できるのはファイルの転送のみです。一方、SFTPはファイル削除やディレクトリ一覧表示を含むすべての操作を実行できます。

また、SFTPにはGUIコンポーネントが用意されており、より高度なリモート管理が可能です。リモートアクセス型のファイルシステムのように振る舞えますが、SCPにはそのような機能はありません。

ファイル転送速度

SCPは受信パケットの確認をSFTPよりも高速に行えます。SFTPは小さなパケットごとに逐一確認応答を返す必要があるためです。この差は、特にレイテンシ(遅延)の大きいネットワーク環境で顕著に現れます。

SCPのもう一つの利点は、より効率的なアルゴリズムでファイル転送を行う点にあります。

中断された転送の再開

SCPはこの機能をサポートしていませんが、SFTPはコマンドラインクライアント経由で中断されたファイル転送の再開に対応しています。

コマンドライン

SCPは非対話型のためコマンドスクリプトを読み込めず、すべてのコマンドをコマンドライン上に記述する必要があります。一方、SFTPは対話型なので、ファイルからコマンドを読み込んで実行することが可能です。

ファイル転送にはどちらを使うべき?SCPかSFTPか

両者には共通点と相違点がありますが、どちらか一方が優れていると断言するのは公平ではありません。どちらもSSH上で動作するため、セキュリティ面の特徴はほぼ同じです。

どちらのユーティリティを選ぶかは、速度・機能性・セキュリティといった観点から、自分の環境の要件に最も合う方を判断基準にするとよいでしょう。単発の高速転送ならSCP、柔軟なファイル管理が必要ならSFTPというように、用途に応じて使い分けるのがおすすめです。

画像クレジット:SSH、Jama00

  1. SATAとNVMeの違いを徹底解説!SSDはどちらを選ぶべき?

    ストレージの世界において、NVMeは大きな変革をもたらしました。従来のSATA SSDは、特にPCから最大限の速度を引き出したい enthusiast の間では、もはや注目の的ではなくなりつつあります。最高性能が求められる場面では、選択肢にすら挙がらないこともあるのです。では、なぜNVMeがこれほど注目されているのでしょうか?本当にNVMeドライブが必要なのでしょうか?その答えを知るには、まずSATAとNVMeについて正しく理解することが大切です。SATAとは?1990年代のPC内部には、平たくて灰色の幅広ケーブルが大量に詰め込まれていました。見た目が悪いうえに、ケース内のエアフローを妨げ、さ

  2. ストリーミング vs ダウンロード:どちらを使うべき?データ通信量の観点から徹底解説

    ネット上で映画や音楽ファイルを視聴するとき、その場でライブ配信のように「ストリーミング」するか、端末にファイルを保存してから再生するか、大きく分けて2つの方法があります。定額制のブロードバンド契約をしている人なら通信量はあまり気にならないかもしれませんが、従量制プランを利用している場合や、動画・音声コンテンツを大量に扱うサイト運営者にとっては、「ストリーミングとダウンロード、どちらがデータ通信量を多く消費するのか」というのは重要な関心事です。 1. ストリーミングとダウンロードの違いとは? まず、両者の基本的な仕組みについて認識を揃えておきましょう。 ダウンロードとは、インターネット上にあ