単体で完結する製品 ポスト量子 SSH & SFTP

sgcSSH: Delphi & .NET 向け SSH & SFTP クライアントとサーバー

5 つのコンポーネントが、SSH 接続の両端をカバーします。TsgcSSHClient はリモートコマンドの実行、pty 付きの対話型シェル、ポートフォワーディングを担当します。TsgcSFTPClient と TsgcSCPClient は、ファイルやフォルダーごと転送します。TsgcSSHServer と TsgcSFTPServer は、ユーザーごとのジェイル付きで、独自の SSH/SFTP サービスをアプリケーションの中に組み込みます。最新の SSH リリースで既定となっているハイブリッドのポスト量子鍵交換 mlkem768x25519-sha256 は、クライアントとサーバーの両方が最初に提示します。

完全なソースコード
Delphi 7 から 13 & .NET
鍵交換 ML-KEM-768 + X25519 mlkem768x25519-sha256、双方で最初に提示
クライアント SSH, SFTP, SCP
サーバー SSH, SFTP
5 コンポーネント クライアント 3 つとサーバー 2 つ
16 同時処理できる SFTP リクエスト 100 MB の転送がローカルネットワークで約 1 秒
2 言語 Delphi と .NET、同じ 5 つのクラス
100% ソースコード同梱 すべてのコンポーネントと同梱の Core ランタイム
12 か月のアップデート ライセンスが有効な間に公開されるすべてのリリース

最初に知っておきたい 3 点

sgcSSH が求めるもの、これらのコンポーネントをすでにお持ちかどうか、そして Delphi 版が何の上に構築されているかです。3 つとも答えは短くまとまります。

sgcSSH は単体で完結しています

単体で完結しており、sgcWebSockets Core ランタイムが含まれています。鍵交換が動作するネイティブ暗号(ML-KEM-768、X25519、ECDH、AES-GCM、SHA-2 ファミリー)も含まれます。SKU も 1 つ、インストーラーも 1 つです。

すべてのライセンスに完全なソースコードが付属するため、プロトコルのコードはバイナリの中に消えることなく、自分のデバッガでステップ実行できます。

エディションの重複

お使いの sgcWebSockets エディションにすでに含まれていませんか?

5 つの SSH コンポーネントはすべて sgcWebSockets の Enterprise に含まれており、All-Access にはすべてが含まれます。.NET では、無償の Community エディションではなく、登録版の sgcWebSockets パッケージに含まれます。

sgcSSH はその逆のケースのために存在します。sgcWebSockets の完全なエディションをライセンスすることなく、アプリケーションで SSH と SFTP を使いたい場合です。購入前に、お使いのエディションがすでにカバーしている範囲をご確認ください。

アドオンが必要

Delphi 版の SSH には sgcCustomIndy が必要です

Delphi のコンポーネントは、sgcCustomIndy がアドオンとして提供するパッチ済み Indy ライブラリの SSH ユニットの上に構築されています。sgcSSH を注文すると、sgcCustomIndy が常に含まれます。

表示されている sgcSSH の価格には、すでに sgcCustomIndy が含まれています。

クライアント 3 つ、サーバー 2 つ

どれも非ビジュアルコンポーネントで、フォームに配置するか、コードで作成して使います。SGC SSH パレットページに登録されます。ホストと認証情報を設定し、イベントを接続してから、接続またはリッスンを開始します。.NET のクラスも同じ名前です。

SSH クライアント1 コンポーネント

コマンド、シェル、トンネル

TsgcSSHClient はパスワードまたは秘密鍵で接続し、OnSSHHostKey がホスト鍵の種類とフィンガープリントを渡すので、known hosts の保存先と照合できます。Execute はコマンドを実行し、その出力を 1 回の呼び出しで返します。対話型セッションでは、OpenChannel、RequestPTY、RequestShell が端末を開き、SendChannelData が入力を送り、OnSSHChannelData がサーバーの出力を返します。端末プロトコルの残りは SendWindowChange と SendSignal が担当します。OpenDirectTCPIP はローカルの接続をサーバー経由で転送し、RequestForwarding はサーバー側のポートをこちらへ転送するよう依頼し、Rekey は長時間続く接続のセッション鍵を更新します。

TsgcSSHClient exec · shell · pty · ポートフォワーディング · rekey
SFTP クライアント1 コンポーネント

高速なファイル転送、操作は 1 メソッドずつ

TsgcSFTPClient は、同じ SSH 接続の上で SFTP v3 を話します。RealPath はホームフォルダーを解決し、ListDirectory は名前、サイズ、日付、フォルダーフラグを返し、Put と Get は 1 回の呼び出しでファイルをアップロード、ダウンロードします。Rename、Delete、MakeDirectory、RemoveDirectory でファイルマネージャーに必要な操作が揃い、OnSFTPProgress は転送済みバイト数をプログレスバー向けに通知します。転送では、ブロックごとに応答を待たずに 16 件のリクエストを同時に処理するため、100 MB のファイルがローカルネットワークで約 1 秒で転送されます。

TsgcSFTPClient SFTP v3 · 同時処理 16 リクエスト
SCP クライアント1 コンポーネント

scp でファイルもフォルダーごとも

TsgcSCPClient は、scp コマンドを許可している任意のサーバーへ、別途ファイル転送サービスを用意することなく SSH 経由でファイルをコピーします。Upload と Download は 1 つのファイルをコピーし、UploadFolder と DownloadFolder はフォルダーツリー全体を再帰的にコピーし、PreserveTimes は更新日時とアクセス日時を相手側にも保持します。OnSCPProgress はファイル名と転送済みバイト数を通知します。

TsgcSCPClient ファイル · フォルダー · 日時の保持
SSH サーバー1 コンポーネント

独自の SSH サービスを、自分のプロセスの中に

TsgcSSHServer は指定したポートでリッスンし、HostKeyFiles から読み込んだ Ed25519、ECDSA、RSA のホスト鍵で自身の身元を証明します。GenerateHostKeyEd25519 を使えば鍵を自動で作成できます。OnSSHAuthPassword と OnSSHAuthPublicKey が誰を通すかを決め、後者には鍵の種類とその SHA256 フィンガープリントが渡されます。OnSSHExec はリモートコマンドに応答し、OnSSHShell は対話型セッションを提供し、サブシステム要求はお使いのハンドラーまたは TsgcSFTPServer に振り分けられます。標準の ssh、sftp、scp コマンドラインツールを含め、標準的な SSH クライアントであればどれでも接続できます。

TsgcSSHServer パスワード · 公開鍵 · exec · shell · サブシステム
SFTP サーバー1 コンポーネント

ユーザーごとのジェイル付きファイルサーバー

TsgcSFTPServer は SFTPServer プロパティで SSH サーバーにリンクし、RootFolder から SFTP v3 を提供します。SCP を有効にすれば scp 転送も提供します。クライアントはそのフォルダーの外に出られません。OnSFTPUserRoot は各ユーザーに専用のフォルダーを割り当て、ReadOnly はアップロード、削除、名前変更を拒否し、OnSFTPOperation は open、remove、rename、フォルダー変更、属性変更、一覧取得のたびに発生するので、1 件ずつ許可または拒否し、ログに残せます。フロー制御により、ファイルサイズに関係なく、大きなダウンロードでもメモリ使用量は一定です。

TsgcSFTPServer SFTP v3 · SCP · ユーザーごとのジェイル · 読み取り専用

自分のコードから使う SSH と SFTP

コンポーネントは通常の非ビジュアルコンポーネントなので、VCL や FMX のデスクトップアプリ、コンソールツール、Windows サービス、Linux デーモン、.NET ワーカーなど、既存のアプリケーションにそのまま組み込めます。以下は、お客様が実際に構築しているパターンを、それを動かすメンバーと対応付けて示したものです。

Linux サーバーでメンテナンスコマンドを実行する Execute

Delphi や .NET のツールから、サービスの再起動、ログの読み取り、ディスク容量の確認を行い、出力を文字列として受け取ります。

アプリに組み込む端末ウィンドウ RequestPTY

pty 付きのシェルを開き、サポートツールやデバイスコンソール向けに自前の UI に表示します。

取引先との定期的なファイル交換 Put / Get

サービスから SFTP で請求書をアップロードし、レポートをダウンロードします。進行状況とエラーのイベントも利用できます。

踏み台ホストの内側にあるデータベースへ接続する OpenDirectTCPIP

データベースのポートをネットワークに公開する代わりに、SSH サーバー経由で接続を転送します。

製品に組み込む SFTP ドロップボックス OnSFTPUserRoot

お客様ごとに専用フォルダーを用意し、サインインを許可するかどうかは自社のユーザーデータベースで判断します。

将来も秘匿されたままの通信 PostQuantumKex

ML-KEM-768 と X25519 のハイブリッド交換は、今日記録されたセッションを将来の量子コンピューターから守ります。

ポスト量子を最優先に、最新のアルゴリズムだけを

クライアントとサーバーは、双方がサポートする最も強力なアルゴリズムを、ハイブリッドのポスト量子鍵交換から順にネゴシエートします。これを使うために設定は必要ありません。

mlkem768x25519-sha256 を最初に提示します

ハイブリッド交換は ML-KEM-768 と X25519 を組み合わせるため、今日通信を記録し、将来量子コンピューターを手に入れた攻撃者に対しても、セッション鍵は安全なままです。最新の SSH リリースの既定であり、現在の SSH クライアントとサーバーでは自動的にネゴシエートされます。PostQuantumKex は既定でオンです。

フォールバックは従来のアルゴリズム

相手側が対応していない場合、鍵交換は curve25519、ECDH、Diffie-Hellman の group14 と group16 にフォールバックします。暗号は AES-GCM と AES-CTR、ホスト鍵とユーザー鍵は Ed25519、ECDSA、RSA です。

Terrapin に対する厳格な鍵交換

厳格な鍵交換は Terrapin プレフィックス切り詰め攻撃を防ぎ、server-sig-algs により、クライアントは従来の SHA-1 ではなく SHA-2 による RSA 署名を選択できます。秘密鍵は PEM と PKCS#8 のファイルから読み込め、.NET 版は OpenSSH の鍵形式にも対応します。

両プラットフォームでネイティブ暗号を使用

鍵交換は、Delphi では sgcWebSockets のネイティブ暗号ユニット、.NET では完全マネージドコードの上で動作し、.NET 版にはデプロイすべき OpenSSL がありません。.NET 8 以降では AES-GCM がハードウェアアクセラレーションされます。

コマンドを実行し、フォルダーを公開する

クライアントの使い方は共通です。ホストと認証情報を設定し、接続して、メソッドを呼び出します。サーバーの使い方は別の形になります。ポートとホスト鍵を設定し、イベントを接続して、有効化します。

var
  SSH: TsgcSSHClient;
  SFTP: TsgcSFTPClient;
begin
  // run a command
  SSH := TsgcSSHClient.Create(nil);
  SSH.Host := 'build01.example.com';
  SSH.Port := 22;
  SSH.Authentication.Username := 'deploy';
  SSH.Authentication.PrivateKeyFile := 'C:\keys\id_ed25519.pem';
  SSH.OnSSHHostKey := SSHHostKey;   // check the fingerprint
  SSH.Connect;
  Memo1.Text := SSH.Execute('uname -a');
  SSH.Disconnect;

  // upload a file over SFTP
  SFTP := TsgcSFTPClient.Create(nil);
  SFTP.Host := 'files.example.com';
  SFTP.Authentication.Username := 'partner';
  SFTP.Authentication.Password := 'secret';
  SFTP.Connect;
  SFTP.Put('C:\export\invoices.zip', '/upload/invoices.zip');
  SFTP.Disconnect;
end;

PostQuantumKex は既定でオンなので、サーバーが対応していれば、どちらのセッションも mlkem768x25519-sha256 をネゴシエートします。

begin
  SFTPServer := TsgcSFTPServer.Create(nil);
  SFTPServer.RootFolder := 'D:\sftp';
  SFTPServer.SFTP := True;
  SFTPServer.SCP := True;
  SFTPServer.OnSFTPUserRoot := SFTPUserRoot;

  SSHServer := TsgcSSHServer.Create(nil);
  SSHServer.Port := 2222;
  SSHServer.HostKeyFiles.Text := 'hostkey_ed25519.pem';
  SSHServer.OnSSHAuthPassword := SSHAuthPassword;
  SSHServer.SFTPServer := SFTPServer;
  SSHServer.Active := True;
end;

procedure TForm1.SSHAuthPassword(Sender: TObject;
  aConnection: TsgcSSHServerConnection; const aUsername, aPassword: string;
  var aAccept: Boolean);
begin
  aAccept := CheckUser(aUsername, aPassword);   // your user store
end;

procedure TForm1.SFTPUserRoot(Sender: TObject; const aUsername: string;
  var aRootFolder: string);
begin
  aRootFolder := 'D:\sftp\' + aUsername;   // one jail per user
end;

sftp -P 2222 user@127.0.0.1 または scp -P 2222 file.txt user@127.0.0.1:/ で接続します。Demos\27.SSH のデモが、5 つのコンポーネントすべてを網羅しています。

Delphi と .NET、デスクトップとサーバー

デスクトップアプリケーション、コンソールツール、サービス向けに、両プラットフォームで同じ 5 つのコンポーネントを提供します。

Delphi Delphi 7 から 13、VCL、FMX、コンソール、サービス
Windows Win32 Windows Win64 Linux64
.NET 完全マネージドコード、OpenSSL 不要
.NET 8 .NET 9 .NET 10 .NET Standard 2.0
コンポーネント SGC SSH パレットページに登録
TsgcSSHClient TsgcSFTPClient TsgcSCPClient TsgcSSHServer TsgcSFTPServer
体験版インストーラー sgcWebSockets All-Access の体験版には SSH コンポーネントが含まれています
1 つのダウンロードで 5 つのコンポーネントすべて

体験版インストーラーをダウンロード →

単体で完結するパッケージ

sgcSSH は単体でライセンスされ、開発者 1 名向けの €398 から始められます。すべてのライセンスに、完全なソースコード、1 年間のアップデート、更新時 50% から 70% の割引が含まれます。パック 1 つの更新で 50%、2 つで 60%、3 つ以上で 70% になります。sgcAI、sgcMQ、sgcSocial、sgcCustomIndy、sgcAuth、sgcHTTP、sgcREST、sgcCrypto、sgcSSH はそれぞれ 1 パックとして数えます。

sgcSSH

€398

Single、Team、Site の各ライセンスをご用意しています。

  • SSH クライアント: コマンド、pty 付きシェル、ポートフォワーディング、rekey
  • ファイルとフォルダー向けの SFTP クライアントと SCP クライアント
  • ユーザーごとのジェイル付き SSH サーバーと SFTP サーバー
  • ポスト量子鍵交換 mlkem768x25519-sha256
  • sgcWebSockets Core ランタイムと sgcCustomIndy を同梱
  • Delphi 7 から 13 & .NET
  • 完全なソースコード
  • 1 年間のアップデート

sgcSSH には sgcWebSockets Core ランタイムが含まれるため、SSH と SFTP のコンポーネントについて他に購入するものはありません。

購入手続きには 3 つの項目が表示されます。金額 0 で計上される sgcWebSockets Core ランタイムの利用権、sgcSSH パック本体、そして Delphi の SSH コンポーネントに必要な sgcCustomIndy です。sgcCustomIndy は常に注文に含まれており、表示されている価格にすでに含まれています。価格の詳細はこちら。

3,000+開発者
20+年
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

ポスト量子時代に備えた SSH と SFTP を出荷しよう

ネイティブの Delphi と .NET のコードによるクライアントとサーバーを、ランタイム同梱、完全なソースコード付きで提供します。All-Access の体験版インストーラーをダウンロードして、今日から最初のサーバーに接続してみましょう。

eSeGeCe のその他の製品

sgcSSH を、Delphi、C++ Builder、.NET 向けの他のコンポーネントライブラリと組み合わせてお使いください。

sgcWebSockets

フルライブラリです。WebSocket クライアントとサーバー、HTTP/2、IoT、P2P、AI コンポーネントを提供します。Enterprise エディションには SSH と SFTP のコンポーネントも含まれます。

詳しく見る →

sgcCustomIndy

sgcWebSockets Enterprise の土台となるカスタム Indy ライブラリを、アドオンとしてパッケージ化したものです。Delphi の SSH コンポーネントに必要で、sgcSSH の注文には常に含まれます。

詳しく見る →

sgcCrypto

共通鍵暗号と公開鍵暗号、ハッシュ、ML-KEM や ML-DSA などのポスト量子アルゴリズム。sgcWebSockets Standard 以上には無償で付属します。

詳しく見る →

sgcAuth

OAuth2 と JWT のクライアント、WebAuthn によるパスキーサインイン、TOTP、LDAP、SAML、OpenID Connect を提供し、Core ランタイムを同梱しています。

詳しく見る →

sgcHTTP

HTTP サーバー、HTTP/2 と gRPC クライアントに加え、Google Cloud Pub/Sub、Calendar、Firebase Cloud Messaging を提供し、Core ランタイムを同梱しています。

詳しく見る →

sgcMQ

ネイティブの MQTT 3.1.1/5.0、AMQP 0.9.1、AMQP 1.0、Apache Kafka、STOMP のクライアントコンポーネントを提供し、Core ランタイムを同梱しています。

詳しく見る →