sgcSSH 機能一覧

sgcSSH でできることすべてを、3 つのクライアントコンポーネント、2 つのサーバーコンポーネント、そしてそれらがネゴシエートするアルゴリズムに対応付けて示します。同じクラスが Delphi と .NET に存在し、すべてのライセンスに完全なソースコードが付属します。

SSH クライアント

コマンド、シェル、フォワーディング、rekey

SFTP クライアント

高速転送、同時処理 16 リクエスト

SCP クライアント

ファイルとフォルダーごと

SSH サーバー

認証、exec、シェル、サブシステム

SFTP サーバー

ユーザーごとのジェイル、読み取り専用モード

アルゴリズム

ポスト量子鍵交換を最優先

プラットフォーム

Delphi 7 から 13 と .NET

sgcSSH は単体で完結しています。sgcWebSockets Core ランタイムを同梱して出荷され、Delphi のコンポーネントの土台となる sgcCustomIndy アドオンも、注文に常に含まれます。

sgcWebSockets にも含まれます。5 つのコンポーネントはすべて sgcWebSockets の Enterprise にも含まれ、All-Access にはすべてが含まれます。.NET では、無償の Community エディションではなく登録版パッケージに含まれます。sgcSSH は、SSH と SFTP だけを必要とするチーム向けの単体パッケージです。

5 つのパレットコンポーネント

クライアント 3 つとサーバー 2 つが、SGC SSH パレットページに登録されます。

コンポーネントクラス役割説明
SSH クライアントTsgcSSHClientコマンドを実行リモートコマンド、pty 付きの対話型シェル、ローカルとリモートのポートフォワーディング、長時間続くセッションの rekey です。
SFTP クライアントTsgcSFTPClientファイルを転送同時処理 16 リクエストの SFTP v3 ファイルマネージャー操作で、100 MB の転送がローカルネットワークで約 1 秒です。
SCP クライアントTsgcSCPClientファイルとフォルダーをコピーscp で単一ファイルやフォルダーツリー全体をアップロード、ダウンロードし、必要に応じてファイルの日時を保持します。
SSH サーバーTsgcSSHServerSSH クライアントを受け入れパスワード認証と公開鍵認証、exec、shell、サブシステムの各要求に対応し、Ed25519、ECDSA、RSA のホスト鍵を使えます。
SFTP サーバーTsgcSFTPServerフォルダーを公開ルートフォルダーから SFTP v3 と SCP を提供し、ユーザーごとのジェイル、読み取り専用モード、操作ごとに許可または拒否するイベントを備えます。

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

TsgcSSHClient は認証済みの SSH 接続を 1 つ開き、その上で必要な数だけチャネルを実行します。

機能API備考
接続Host, Port, Connect, Disconnectポートの既定値は 22 です。
パスワード認証Authentication.Username, Authentication.Passwordユーザー名とパスワードによる通常のサインインです。
公開鍵認証Authentication.PrivateKeyFile, Authentication.PassphrasePEM または PKCS#8 ファイルの Ed25519、ECDSA、RSA 秘密鍵に対応し、.NET では OpenSSH 形式にも対応します。
ホスト鍵の確認OnSSHHostKey鍵の種類とフィンガープリントを受け取るので、known hosts の保存先と照合し、未知の鍵や変更された鍵を拒否できます。
リモートコマンドExecuteチャネルを開いてコマンドを実行し、その出力を文字列として返します。タイムアウトも指定できます。
対話型シェルOpenChannel, RequestPTY, RequestShell端末の種類とサイズを指定した端末セッションです。
シェルの入出力SendChannelData, OnSSHChannelDataユーザーの入力を送り、サーバーの出力を受け取ります。
端末の制御SendWindowChange, SendSignal, SendEOF端末のリサイズ、シグナルの送信、チャネル入力の終了を行います。
exec とサブシステムのチャネルRequestExec, RequestSubsystemSSH 上の独自プロトコル向けの低レベルなチャネル要求です。
ローカルポートフォワーディングOpenDirectTCPIPサーバーから到達できるホストとポートへの direct-tcpip チャネルを開きます。
リモートポートフォワーディングRequestForwarding, CancelForwardingサーバーにポートでリッスンさせ、その接続をクライアントへ転送するよう依頼します。
RekeyRekey長時間続く接続のセッション鍵を更新します。
ポスト量子鍵交換PostQuantumKex既定でオン: mlkem768x25519-sha256 を最初に提示します。

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

TsgcSFTPClient は、同じ SSH トランスポートの上で SFTP v3 を実装し、SSH クライアントと同じ認証オプションと鍵交換オプションを備えます。

機能API備考
ホームフォルダーRealPath. のようなパスを、サーバー上の絶対パスに解決します。
フォルダー一覧ListDirectory各エントリの名前、サイズ、更新日時、フォルダーフラグを返します。
アップロードとダウンロードPut, Getファイル 1 つにつき 1 回の呼び出しで、16 件のリクエストを同時に処理します。100 MB の転送がローカルネットワークで約 1 秒です。
ファイル管理Rename, Delete, MakeDirectory, RemoveDirectoryファイルマネージャーに必要な操作がすべて揃います。
進行状況OnSFTPProgress転送済みバイト数を通知します。そのままプログレスバーに使えます。

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

TsgcSCPClient は、scp コマンドを許可している任意のサーバーへ、SSH 経由でファイルをコピーします。

機能API備考
単一ファイルUpload, Downloadリモートパスとの間で 1 つのファイルをコピーします。
フォルダーツリーUploadFolder, DownloadFolderフォルダー全体を再帰的にコピーします。
ファイルの日時PreserveTimes更新日時とアクセス日時を相手側にも保持します。
進行状況OnSCPProgressファイル名と転送済みバイト数を通知します。

独自の SSH サービス

TsgcSSHServer は、標準の ssh、sftp、scp コマンドラインツールを含め、標準的な SSH クライアントであればどれでも受け入れます。

機能API備考
リッスンPort, Activeサーバーを開始、停止します。
ホスト鍵HostKeyFiles, GenerateHostKeyEd25519Ed25519、ECDSA、RSA のホスト鍵に対応します。クラスプロシージャが Ed25519 の鍵ファイルを作成します。
パスワード認証OnSSHAuthPassword自社のユーザーストアに対して、ユーザー名とパスワードを確認します。
公開鍵認証OnSSHAuthPublicKey鍵の種類とその SHA256 フィンガープリントを受け取るので、把握している鍵だけを受け入れられます。
リモートコマンドOnSSHExec, SendChannelData, SendExitStatus, CloseChannelコマンドに応答し、終了ステータスを通知して、チャネルを閉じます。
対話型シェルOnSSHShell, OnSSHChannelData自分のコードから端末セッションを提供します。
サブシステムSFTPServersftp などのサブシステム要求は、リンクした TsgcSFTPServer に振り分けられます。
接続イベントOnSSHConnect, OnSSHDisconnectすべての接続を、接続元アドレスとともにログに記録します。

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

TsgcSFTPServer は TsgcSSHServer に接続し、クライアントが外に出られないフォルダーからファイルを提供します。

機能API備考
プロトコルSFTP, SCPSFTP v3 に加え、有効にすると scp 転送にも対応します。
ルートフォルダーRootFolderクライアントに見せるフォルダーです。その外側のパスは拒否されます。
ユーザーごとのフォルダーOnSFTPUserRoot各ユーザーのルートを返すので、ユーザーは自分のファイルだけを見られます。
読み取り専用モードReadOnlyアップロード、削除、名前変更を拒否します。
操作ごとの制御OnSFTPOperation読み取りまたは書き込みでの open、remove、rename、フォルダーの作成と削除、属性変更、一覧取得のたびに発生します。aAccept を False にすると、クライアントには権限拒否のエラーが返されます。
大きなダウンロードフロー制御ファイルサイズに関係なく、ダウンロード時のメモリ使用量は一定です。

ポスト量子を最優先に

クライアントとサーバーは最も強力なアルゴリズムから順に提示し、相手側が必要とする場合にのみ従来のアルゴリズムにフォールバックします。

領域アルゴリズム備考
鍵交換mlkem768x25519-sha256ML-KEM-768 と X25519 の組み合わせで、最新の SSH リリースの既定です。クライアントとサーバーの両方が最初に提示します。
従来の鍵交換curve25519, ECDH, Diffie-Hellman group14 と group16相手側がハイブリッド交換に対応していない場合に使用します。
暗号AES-GCM, AES-CTR.NET 8 以降では AES-GCM がハードウェアアクセラレーションされます。
ホスト鍵とユーザー鍵Ed25519, ECDSA, RSASHA-2 による RSA 署名で、server-sig-algs を通じて選択されます。
鍵ファイルPEM, PKCS#8, OpenSSH (.NET)暗号化された秘密鍵は、パスフレーズで開きます。
厳格な鍵交換Terrapin 対策SSH ハンドシェイクに対するプレフィックス切り詰め攻撃を防ぎます。

コンパイラ、フレームワーク、ターゲット

Delphi と .NET で同じ 5 つのコンポーネントを提供します。

領域内容
DelphiDelphi 7 から 13 まで。VCL、FMX、コンソールアプリケーション、サービスに対応します。
Delphi のターゲットWindows Win32、Windows Win64、Linux64。
.NET.NET 8、.NET 9、.NET 10、.NET Standard 2.0。完全マネージドコードで、OpenSSL は不要です。
デモDemos\27.SSH: SSH クライアント、SFTP クライアント、SCP クライアント、SSH サーバー、SFTP サーバー。
エディション5 つのコンポーネントはすべて sgcWebSockets Enterprise にも含まれ、All-Access にはすべてが含まれます。.NET では登録版パッケージに含まれ、Community エディションには含まれません。
ライセンス単体で提供されます。sgcWebSockets Core ランタイムを同梱し、sgcCustomIndy は注文に含まれ、完全なソースコードも付属します。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

sgcSSH で構築しよう

無料体験版をダウンロードして、Delphi や .NET から最初のリモートコマンドや SFTP アップロードを実行してみましょう。