SSHとSFTPは一緒なのか?

SSHとSFTPは一緒なのか?

Goanywhere2023.05.16

SSHとSFTPは一緒なのか?

SSHとSFTPは有名なペアです。安全な情報伝達という話になると、この2つはよく一緒に挙げられます。
ただこの2つは確かに似たような能力を持っていますが、全く同じというものではありません。では、これらは何が違うのでしょうか。
私たちと一緒に理解を深めていきましょう。

SSHとは

SSH(Secure Shell)とは、2つのエンドポイントの間を移動する情報と安全なログインの為に使用されるトランスポート層のことです。
SSHは、強固な暗号化と最適なパフォーマンスを提供するため、公開鍵と秘密鍵という2つの非対称なペアと共通の暗号化方式を使用します。
これは組織と遠隔サーバ間での安全な情報伝達を可能にします。

SFTPとは

SFTP(SSH File Transfer Protocol)は、高レベルな防護機能を提供しつつSSH上でファイルを送ることのできる安全なファイル転送プロトコルです。
SFTPはAESやTriple DES、その他のアルゴリズムを実行し、システム間を行き来するデータの暗号化を行います。
また、より強力な認証を必要とする組織に対してはユーザIDとパスワード、SSH鍵、またはパスワードとSSH鍵の組み合わせのような、接続の認証を行う為のいくつかの方法を用意しています。

SFTP認証

SFTPはSSHトランスポート層上にあるプロトコルのため、SFTPのやりとりにはSSHユーザー認証が使用されます。

SFTP認証はどのように行われるのか

SFTPは一般的に、ユーザー認証の為に以下の方法をサポートしています:

  • ユーザーネームとパスワードを入力する形式のパスワードベース認証
  • ユーザーネームとSSH鍵を入力する形式のキーベース認証。この方式は複数のサーバに対して同じキーを使用することができるため、パスワード管理の手間が省けるという利点があります。
  • パスワードとSSH鍵を使用する二要素認証(2ファクタ認証)。この方式は最高レベルのセキュリティ強度を誇ります。

SFTPは二要素認証を必要としませんが、より安全な接続のためにこれを使用するという選択肢もあります。SSH鍵を使用することは、攻撃者がサーバに侵入するのを防ぐのに役立ちます。

もっと見る: SFTP Connectivity(英語サイト)

認証にSSH鍵を使用する前に、SSH公開鍵と秘密鍵を生成しなければなりません。SSH公開鍵は取引先に送信され、相手はサーバに公開鍵をロードし、あなたのアカウントと連携させる必要があります。相手のサーバに接続すると、サーバは認証を行うため鍵を確認します。これをすべてクリアすると、認証は成功です。

SSHとSFTPの類似点

SFTPはSSHがいなければ存在することができません。SFTPは安全にファイルを転送するため、SSHを結合剤として使用します。言い換えると、SSHプロトコルはSFTPのファイル転送メカニズムの中で使用されるということです。
実際、ほとんどのSSHサーバではSFTPの機能も内包されています。しかし、すべてのSFTPサーバがSSHのコマンドやアクションをサポートしているというわけではありません。

SSHとSFTPの相違点

これらはどちらも情報を安全な形でやりとりするために使われますが、SFTPと違い、SSHはそれ自身で存在することができます。
SSHの代表的なアプリケーションは、コマンドライン、ログイン、遠隔コマンド実行です。
一方でSFTPは、信頼できるデータ通信において安全なファイルへのアクセス、転送、そして管理の機能を提供するプロトコルです。