Producto independiente SSH y SFTP post-quantum

sgcSSH: clientes y servidores SSH y SFTP para Delphi y .NET

Cinco componentes cubren los dos extremos de una conexión SSH. TsgcSSHClient ejecuta comandos remotos, abre una shell interactiva con pty y reenvía puertos. TsgcSFTPClient y TsgcSCPClient mueven archivos y carpetas completas. TsgcSSHServer y TsgcSFTPServer ponen tu propio servicio SSH y SFTP dentro de tu aplicación, con una jaula por usuario. El intercambio de claves híbrido post-quantum mlkem768x25519-sha256, el valor por defecto de las últimas versiones de SSH, lo ofrecen en primer lugar tanto el cliente como el servidor.

Código fuente completo
Delphi 7 a 13 y .NET
Intercambio de claves ML-KEM-768 + X25519 mlkem768x25519-sha256, ofrecido primero en ambos lados
Clientes SSH, SFTP, SCP
Servidores SSH, SFTP
5 Componentes Tres clientes y dos servidores
16 Peticiones SFTP en vuelo Una transferencia de 100 MB tarda cerca de un segundo en una red local
2 Lenguajes Delphi y .NET, las mismas cinco clases
100% Código fuente incluido Todos los componentes y el runtime Core incluido
12 Meses de actualizaciones Cada versión publicada mientras tu licencia esté activa

Tres cosas que conviene saber primero

Qué necesita sgcSSH de ti, si ya tienes estos componentes y sobre qué se construye la versión Delphi. Las tres respuestas son breves.

sgcSSH es autocontenido

Independiente, el runtime sgcWebSockets Core viene incluido, junto con la criptografía nativa sobre la que corre el intercambio de claves: ML-KEM-768, X25519, ECDH, AES-GCM y la familia SHA-2. Un solo SKU, un solo instalador.

El código fuente completo se entrega con cada licencia, así que puedes recorrer el código del protocolo paso a paso en tu propio depurador, en lugar de verlo desaparecer dentro de un binario.

Solapamiento de ediciones

¿Ya lo tienes en tu edición de sgcWebSockets?

Los cinco componentes SSH se entregan dentro de sgcWebSockets Enterprise, y All-Access lo incluye todo. En .NET se entregan en el paquete registrado de sgcWebSockets, no en la edición gratuita Community.

sgcSSH existe para el caso contrario: quieres SSH y SFTP en tu aplicación sin licenciar una edición completa de sgcWebSockets. Comprueba qué cubre ya tu edición antes de comprar.

Add-on necesario

SSH en Delphi necesita sgcCustomIndy

Los componentes Delphi se construyen sobre las unidades SSH de la librería Indy parcheada que sgcCustomIndy entrega como add-on. sgcCustomIndy siempre se incluye cuando pides sgcSSH.

El precio de sgcSSH que se muestra ya cubre sgcCustomIndy.

Tres clientes, dos servidores

Cada uno es un componente no visual que sueltas en un formulario o creas por código, registrado en la página de paleta SGC SSH. Indica el host y las credenciales, conecta los eventos y luego conecta o empieza a escuchar. Las clases de .NET llevan los mismos nombres.

Cliente SSH1 componente

Comandos, shells y túneles

TsgcSSHClient se conecta con una contraseña o una clave privada, y OnSSHHostKey te entrega el tipo y la huella de la clave del host para compararlos con tu almacén de hosts conocidos. Execute ejecuta un comando y devuelve su salida en una sola llamada. Para una sesión interactiva, OpenChannel, RequestPTY y RequestShell abren un terminal, SendChannelData escribe en él y OnSSHChannelData devuelve lo que imprime el servidor, con SendWindowChange y SendSignal para el resto del protocolo de terminal. OpenDirectTCPIP reenvía una conexión local a través del servidor, RequestForwarding pide al servidor que reenvíe un puerto remoto hacia ti y Rekey renueva las claves de sesión de una conexión de larga duración.

TsgcSSHClient exec · shell · pty · reenvío de puertos · rekey
Cliente SFTP1 componente

Transferencias rápidas, un método para cada una

TsgcSFTPClient habla SFTP v3 sobre la misma conexión SSH. RealPath resuelve la carpeta de inicio, ListDirectory devuelve nombres, tamaños, fechas y el indicador de carpeta, y Put y Get suben y descargan un archivo en una sola llamada. Rename, Delete, MakeDirectory y RemoveDirectory cubren el resto de un gestor de archivos, y OnSFTPProgress informa de los bytes transferidos para una barra de progreso. Las transferencias mantienen 16 peticiones en vuelo en lugar de esperar a cada bloque, así que un archivo de 100 MB tarda cerca de un segundo en una red local.

TsgcSFTPClient SFTP v3 · 16 peticiones en vuelo
Cliente SCP1 componente

Archivos y carpetas completas con scp

TsgcSCPClient copia archivos por SSH a cualquier servidor que permita el comando scp, sin un servicio de transferencia de archivos aparte. Upload y Download copian un archivo, UploadFolder y DownloadFolder copian un árbol de carpetas completo de forma recursiva, y PreserveTimes conserva las fechas de modificación y de acceso en el otro lado. OnSCPProgress informa del nombre del archivo y de los bytes transferidos.

TsgcSCPClient archivos · carpetas · conservar fechas
Servidor SSH1 componente

Tu propio servicio SSH, dentro de tu proceso

TsgcSSHServer escucha en el puerto que elijas y demuestra su identidad con claves de host Ed25519, ECDSA o RSA cargadas desde HostKeyFiles, y GenerateHostKeyEd25519 crea una por ti. OnSSHAuthPassword y OnSSHAuthPublicKey deciden quién entra, el segundo con el tipo de clave y su huella SHA256. OnSSHExec responde a comandos remotos, OnSSHShell atiende una sesión interactiva, y las peticiones de subsistema se dirigen a tu manejador o a TsgcSFTPServer. Cualquier cliente SSH estándar se conecta a él, incluidas las herramientas de línea de comandos estándar ssh, sftp y scp.

TsgcSSHServer contraseña · clave pública · exec · shell · subsistemas
Servidor SFTP1 componente

Un servidor de archivos con una jaula por usuario

TsgcSFTPServer se enlaza con el servidor SSH mediante su propiedad SFTPServer y sirve SFTP v3 y, con SCP activado, transferencias scp desde RootFolder. Los clientes no pueden salir de esa carpeta. OnSFTPUserRoot da a cada usuario una carpeta propia, ReadOnly rechaza subidas, borrados y renombrados, y OnSFTPOperation se dispara en cada apertura, borrado, renombrado, cambio de carpeta, cambio de atributos y listado, de modo que permites o deniegas cada uno y lo registras. El control de flujo mantiene constante la memoria de una descarga grande, sea cual sea el tamaño del archivo.

TsgcSFTPServer SFTP v3 · SCP · jaula por usuario · solo lectura

SSH y SFTP desde tu propio código

Los componentes son componentes no visuales corrientes, así que encajan en lo que ya sea tu aplicación: una aplicación de escritorio VCL o FMX, una herramienta de consola, un servicio de Windows, un demonio de Linux o un worker de .NET. Estos son los patrones que construyen los clientes, cada uno asociado al miembro que lo impulsa.

Ejecuta comandos de mantenimiento en servidores Linux Execute

Reinicia un servicio, lee un log o comprueba el espacio en disco desde una herramienta Delphi o .NET, y recibe la salida como una cadena.

Una ventana de terminal integrada RequestPTY

Abre una shell con pty y muéstrala en tu propia interfaz, para herramientas de soporte y consolas de dispositivos.

Intercambio programado de archivos con socios Put / Get

Sube facturas y descarga informes por SFTP desde un servicio, con eventos de progreso y de error.

Llega a una base de datos detrás de un bastión OpenDirectTCPIP

Reenvía una conexión a través del servidor SSH en lugar de abrir el puerto de la base de datos a la red.

Un buzón SFTP dentro de tu producto OnSFTPUserRoot

Da a cada cliente una carpeta privada, con tu propia base de datos de usuarios decidiendo quién entra.

Tráfico que seguirá siendo privado en el futuro PostQuantumKex

El intercambio híbrido ML-KEM-768 y X25519 protege las sesiones grabadas hoy frente a un futuro ordenador cuántico.

Post-quantum primero, solo algoritmos modernos

Cliente y servidor negocian los algoritmos más fuertes que admiten ambos lados, empezando por el intercambio de claves híbrido post-quantum. No hay que configurar nada para obtenerlo.

mlkem768x25519-sha256 se ofrece primero

El intercambio híbrido combina ML-KEM-768 con X25519, de modo que las claves de sesión siguen a salvo incluso frente a un atacante que graba el tráfico hoy y tendrá un ordenador cuántico más adelante. Es el valor por defecto de las últimas versiones de SSH, y los clientes y servidores SSH actuales lo negocian automáticamente. PostQuantumKex está activado por defecto.

Algoritmos clásicos como alternativa

Cuando el otro lado no lo admite, el intercambio recurre a curve25519, ECDH y Diffie-Hellman group14 y group16. Los cifrados son AES-GCM y AES-CTR, y las claves de host y de usuario son Ed25519, ECDSA o RSA.

Intercambio de claves estricto contra Terrapin

El intercambio de claves estricto cierra el ataque de truncamiento de prefijo Terrapin, y server-sig-algs permite al cliente elegir una firma RSA con SHA-2 en lugar de la antigua con SHA-1. Las claves privadas se cargan desde archivos PEM y PKCS#8, y la versión .NET también lee el formato de clave de OpenSSH.

Criptografía nativa en ambas plataformas

El intercambio de claves corre sobre las unidades de criptografía nativa de sgcWebSockets en Delphi y sobre código totalmente gestionado en .NET, sin OpenSSL que desplegar en la versión .NET. En .NET 8 y posteriores, AES-GCM tiene aceleración por hardware.

Ejecuta un comando, sirve una carpeta

Los clientes siguen una misma forma: indica el host y las credenciales, conecta y llama a un método. Los servidores siguen otra: indica el puerto y la clave de host, conecta los eventos y activa.

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 está activado por defecto, así que ambas sesiones negocian mlkem768x25519-sha256 siempre que el servidor lo admita.

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;

Conéctate con sftp -P 2222 user@127.0.0.1 o scp -P 2222 file.txt user@127.0.0.1:/. Las demos de Demos\27.SSH cubren los cinco componentes.

Delphi y .NET, escritorio y servidor

Los mismos cinco componentes en ambas plataformas, para aplicaciones de escritorio, herramientas de consola y servicios.

Delphi Delphi 7 a 13, VCL, FMX, consola y servicios
Windows Win32 Windows Win64 Linux64
.NET Código totalmente gestionado, sin OpenSSL
.NET 8 .NET 9 .NET 10 .NET Standard 2.0
Componentes Registrados en la página de paleta SGC SSH
TsgcSSHClient TsgcSFTPClient TsgcSCPClient TsgcSSHServer TsgcSFTPServer
Instalador de prueba La prueba All-Access de sgcWebSockets incluye los componentes SSH
Una sola descarga, los cinco componentes

Descargar el instalador de prueba →

Un paquete independiente

sgcSSH se licencia por separado, desde €398 para un solo desarrollador. Todas las licencias incluyen código fuente completo, 1 año de actualizaciones y un descuento de renovación del 50% al 70%: un 50% al renovar un pack, un 60% con dos y un 70% con tres o más. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto y sgcSSH cuentan cada uno como un pack.

sgcSSH

€398

Disponible en licencias Single, Team y Site.

  • Cliente SSH: comandos, shell con pty, reenvío de puertos, rekey
  • Clientes SFTP y SCP para archivos y carpetas
  • Servidores SSH y SFTP con una jaula por usuario
  • Intercambio de claves post-quantum mlkem768x25519-sha256
  • Runtime sgcWebSockets Core y sgcCustomIndy incluidos
  • Delphi 7 a 13 y .NET
  • Código fuente completo
  • 1 año de actualizaciones

sgcSSH incluye el runtime sgcWebSockets Core, así que no hay nada más que comprar para los componentes SSH y SFTP.

El pago muestra tres líneas: el derecho al runtime sgcWebSockets Core, que se cobra a cero, el propio pack sgcSSH y sgcCustomIndy, que requieren los componentes SSH de Delphi. sgcCustomIndy siempre se incluye y el precio mostrado ya lo cubre. Detalles completos de precios.

3,000+Desarrolladores
20+Años
761+Componentes
30+Integraciones de API
5Plataformas
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

Lanza SSH y SFTP, listos para la era post-quantum

Clientes y servidores desde código nativo de Delphi y .NET, con el runtime incluido y el código fuente completo en la caja. Descarga hoy mismo el instalador de prueba All-Access y conéctate a tu primer servidor.

Otros productos de eSeGeCe

Combina sgcSSH con nuestras otras bibliotecas de componentes para Delphi, C++ Builder y .NET.

sgcWebSockets

La biblioteca completa: clientes y servidores WebSocket, HTTP/2, IoT, P2P y componentes de IA. Su edición Enterprise incluye también los componentes SSH y SFTP.

Más información →

sgcCustomIndy

La biblioteca Indy personalizada sobre la que se construye sgcWebSockets Enterprise, empaquetada como add-on. Requerida por los componentes SSH de Delphi, siempre incluida en los pedidos de sgcSSH.

Más información →

sgcCrypto

Cifrados simétricos y asimétricos, hashing y algoritmos post-quantum como ML-KEM y ML-DSA. Se entrega gratis desde sgcWebSockets Standard.

Más información →

sgcAuth

Clientes OAuth2 y JWT, inicio de sesión passkey con WebAuthn, TOTP, LDAP, SAML y OpenID Connect, con el runtime Core incluido.

Más información →

sgcHTTP

Servidor HTTP, clientes HTTP/2 y gRPC, además de Google Cloud Pub/Sub, Calendar y Firebase Cloud Messaging, con el runtime Core incluido.

Más información →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka y STOMP, con el runtime Core incluido.

Más información →