コマンド、シェル、トンネル
TsgcSSHClient はパスワードまたは秘密鍵で接続し、OnSSHHostKey がホスト鍵のフィンガープリントを渡すので確認できます。Execute はコマンドを実行し、その出力を 1 回の呼び出しで返します。RequestPTY と RequestShell は対話型の端末を開き、OpenDirectTCPIP と RequestForwarding はポートを双方向に転送します。
5 つのコンポーネントが、SSH 接続の両端をカバーします。 TsgcSSHClient はリモートコマンドの実行、対話型シェル、ポートフォワーディングを担当します。 TsgcSFTPClient と TsgcSCPClient は、ファイルやフォルダーごと転送します。 TsgcSSHServer と TsgcSFTPServer は、独自の SSH と SFTP のサービスをアプリケーションの中に組み込みます。ハイブリッド鍵交換 mlkem768x25519-sha256 は、クライアントとサーバーの両方が最初に提示します。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
どれも非ビジュアルコンポーネントで、フォームに配置するか、コードで作成して使います。ホストと認証情報を設定し、イベントを接続してから、接続またはリッスンを開始します。.NET のクラスも同じ名前なので、SSH の処理は両方の言語で同じように書けます。
TsgcSSHClient はパスワードまたは秘密鍵で接続し、OnSSHHostKey がホスト鍵のフィンガープリントを渡すので確認できます。Execute はコマンドを実行し、その出力を 1 回の呼び出しで返します。RequestPTY と RequestShell は対話型の端末を開き、OpenDirectTCPIP と RequestForwarding はポートを双方向に転送します。
TsgcSFTPClient は、同じ SSH 接続の上で SFTP v3 を話します。ListDirectory は名前、サイズ、日付を返し、Put と Get は 1 回の呼び出しでファイルを転送し、Rename、Delete、MakeDirectory、RemoveDirectory で残りの操作が揃います。転送では、ブロックごとに応答を待たず、16 件のリクエストを同時に処理します。
TsgcSCPClient は、scp コマンドを許可している任意のサーバーへ、別途ファイル転送サービスを用意することなく SSH 経由でファイルをコピーします。UploadFolder と DownloadFolder はフォルダーツリー全体を再帰的にコピーし、PreserveTimes は更新日時とアクセス日時を相手側にも保持します。
TsgcSSHServer は指定したポートで、Ed25519、ECDSA、RSA のホスト鍵を使ってリッスンし、GenerateHostKeyEd25519 を使えば鍵を自動で作成できます。OnSSHAuthPassword と OnSSHAuthPublicKey が誰を通すかを決め、OnSSHExec はリモートコマンドに応答し、OnSSHShell は対話型セッションを提供します。
TsgcSFTPServer は RootFolder から SFTP v3 と scp 転送を提供し、クライアントはそのフォルダーの外に出られません。OnSFTPUserRoot は各ユーザーに専用のフォルダーを割り当て、ReadOnly は変更を拒否し、OnSFTPOperation は open、rename、remove、一覧取得のたびに発生するので、1 件ずつ許可、拒否し、ログに残せます。
ハイブリッド交換 mlkem768x25519-sha256 は ML-KEM-768 と X25519 を組み合わせるため、今日記録されたセッションも、将来の量子コンピューターに対して秘匿されたままです。PostQuantumKex は既定でオンで、クライアントとサーバーの両方が最初に提示します。厳格な鍵交換により、Terrapin 攻撃を防ぎます。
同じ 5 つのコンポーネントを、Windows 32 ビットと 64 ビット、Linux 64 ビット上の Delphi 7 から 13、そして .NET 8、9、10 と .NET Standard 2.0 で利用できます。.NET 版は完全なマネージドコードで、OpenSSL の配布は不要です。どちらも、デスクトップアプリ、コンソールツール、サービスの中で動作します。
プラットフォーム →sgcSSH は単体のパッケージです。sgcWebSockets Core ランタイムと、鍵交換が動作するネイティブ暗号を同梱し、すべてのライセンスに完全なソースコードが付属するため、プロトコルのコードを自分のデバッガでステップ実行できます。配布はロイヤリティフリーです。
価格を見る →各コンポーネントのリファレンスページ:
クライアントは同じ流れです。ホストと認証情報を設定し、接続して、メソッドを呼び出します。サーバーは別の流れです。ポートとホスト鍵を設定し、イベントを接続して、有効にします。
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;
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.SFTPUserRoot(Sender: TObject; const aUsername: string;
var aRootFolder: string);
begin
aRootFolder := 'D:\sftp\' + aUsername; // one jail per user
end;
PostQuantumKex は既定でオンなので、相手側が対応していれば、すべてのセッションで mlkem768x25519-sha256 がネゴシエートされます。 クイックスタートの全文 →
OnSSHHostKey でサーバーのフィンガープリントを確認します。Execute、SFTP は Put と Get、scp は UploadFolder。どの転送にも進行状況のイベントがあります。TsgcSFTPServer を TsgcSSHServer にリンクし、サインインを許可する相手は自社のユーザーストアで判断します。標準的な ssh、sftp、scp クライアントならどれでも接続できます。sgcSSH がネゴシエートする内容、これらのコンポーネントをすでにお持ちかどうか、Delphi 版が何の上に構築されているか、そして試用の方法です。答えは短くまとまっており、小さな注意書きではなく、このページに書いてあります。
side component job
client TsgcSSHClient exec, shell, pty, port forwarding
client TsgcSFTPClient SFTP v3, 16 requests in flight
client TsgcSCPClient files and folder trees
server TsgcSSHServer password, public key, exec, shell
server TsgcSFTPServer SFTP v3, SCP, jail per user
key exchange, offered in this order
mlkem768x25519-sha256 hybrid post-quantum
curve25519, ECDH, DH group14 and group16
ciphers AES-GCM, AES-CTR
keys Ed25519, ECDSA, RSA
Demos\27.SSH のデモが、それぞれをカバーしています。鍵交換、認証、チャネル、転送はすべて第一級のメソッドとイベントで、完全なソースコードにより、途中にブラックボックスはありません。 すべてのコンポーネントとプロパティ →
sgcSSH は sgcWebSockets ファミリーの 1 つのパッケージです。Core ランタイム同梱の単体製品として購入するか、sgcWebSockets Enterprise または All-Access で 5 つのコンポーネントすべてを入手できます。
SSH、SFTP、SCP のクライアントと、SSH、SFTP のサーバー。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
同じパッケージを、チーム全体またはサイト全体にライセンスします。
WebSocket のクライアントとサーバー、HTTP/2、IoT、P2P、AI コンポーネントを備えたフルライブラリ。Enterprise エディションには SSH と SFTP のコンポーネントも含まれます。
sgcWebSockets Enterprise または All-Access をお持ちなら、5 つのコンポーネントすべてをすでに利用できます。sgcSSH は、sgcWebSockets のエディションをライセンスせずに SSH と SFTP を使いたい方のための製品です。
価格とライセンスを見る世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。
sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
sgcWebSockets は素晴らしく、サポートも最高です!
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
sgcSSH は、Delphi、C++ Builder、.NET 向けの eSeGeCe コンポーネントライブラリの 1 つです。共通の規約を持ち、完全なソースコード付きで提供され、ロイヤリティフリーで配布できます。
Delphi、C++ Builder、Lazarus、.NET 向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI、そして 30 を超える API 統合。Core ランタイムはここにあります。
sgcWebSockets Enterprise の土台となるカスタム Indy ライブラリを、アドオンとして提供します。Delphi の SSH コンポーネントに必要で、sgcSSH の注文には常に含まれます。
対称鍵と公開鍵の暗号、ハッシュ、ML-KEM や ML-DSA などのポスト量子アルゴリズム。sgcWebSockets Standard 以上には無料で付属します。
OAuth2 と JWT のクライアント、WebAuthn パスキーによるサインイン、TOTP、LDAP、SAML、OpenID Connect。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの HTTP サーバー、HTTP/2 クライアント、gRPC クライアント、そして Google Cloud の Pub/Sub、Calendar、FCM クライアントです。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの MQTT、AMQP 0.9.1 および 1.0、Apache Kafka、STOMP のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの REST サーバー、OpenAPI サーバー、OpenAPI クライアントのコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの AI、LLM、MCP コンポーネント。1 つのコンポーネントで 7 社の LLM プロバイダーに対応し、MCP、埋め込み、音声も利用できます。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Delphi と C++ Builder 向けの Telegram および WhatsApp Business のクライアントコンポーネント。単体製品で、sgcWebSockets Core ランタイムを同梱しています。
Bootstrap 5 と htmx を基盤とする、Delphi で書く Web アプリケーション向けのサーバーサイド HTML / UI コンポーネントです。
ドキュメントには XAdES、PAdES、CAdES、ASiC、コードには Authenticode、ClickOnce、NuGet、VSIX。
パック、アドオンなど