sgcSSH: matriz de características

Todo lo que hace sgcSSH, repartido entre los tres componentes cliente, los dos componentes servidor y los algoritmos que negocian. Las mismas clases existen en Delphi y en .NET, y cada licencia incluye el código fuente completo.

Cliente SSH

Comandos, shells, reenvío y rekey

Cliente SFTP

Transferencias rápidas, 16 peticiones en vuelo

Cliente SCP

Archivos y carpetas completas

Servidor SSH

Autenticación, exec, shell y subsistemas

Servidor SFTP

Una jaula por usuario, modo de solo lectura

Algoritmos

Intercambio de claves post-quantum primero

Plataformas

Delphi 7 a 13 y .NET

sgcSSH es autocontenido. Se entrega con el runtime sgcWebSockets Core incluido, y el add-on sgcCustomIndy sobre el que se construyen los componentes Delphi se incluye siempre en el pedido.

También dentro de sgcWebSockets. Los cinco componentes se entregan también dentro de sgcWebSockets Enterprise, y All-Access lo incluye todo. En .NET forman parte del paquete registrado, no de la edición gratuita Community. sgcSSH es el paquete independiente para los equipos que solo necesitan SSH y SFTP.

Cinco componentes de paleta

Tres clientes y dos servidores, registrados en la página de paleta SGC SSH.

ComponenteClaseFunciónDescripción
Cliente SSHTsgcSSHClientEjecutar comandosComandos remotos, una shell interactiva con pty, reenvío de puertos local y remoto, y rekey de sesiones de larga duración.
Cliente SFTPTsgcSFTPClientTransferir archivosOperaciones de gestor de archivos SFTP v3 con 16 peticiones en vuelo, de modo que una transferencia de 100 MB tarda cerca de un segundo en una red local.
Cliente SCPTsgcSCPClientCopiar archivos y carpetasSube y descarga archivos sueltos o árboles de carpetas completos con scp, conservando opcionalmente las fechas de los archivos.
Servidor SSHTsgcSSHServerAceptar clientes SSHAutenticación por contraseña y por clave pública, peticiones exec, shell y de subsistema, con claves de host Ed25519, ECDSA y RSA.
Servidor SFTPTsgcSFTPServerServir una carpetaSFTP v3 y SCP desde una carpeta raíz, con una jaula por usuario, un modo de solo lectura y un evento para permitir o denegar cada operación.

Comandos, shells y túneles

TsgcSSHClient abre una conexión SSH autenticada y ejecuta en ella tantos canales como necesites.

CapacidadAPINotas
ConexiónHost, Port, Connect, DisconnectPuerto 22 por defecto.
Autenticación por contraseñaAuthentication.Username, Authentication.PasswordInicio de sesión simple con nombre de usuario y contraseña.
Autenticación por clave públicaAuthentication.PrivateKeyFile, Authentication.PassphraseClaves privadas Ed25519, ECDSA y RSA en archivos PEM o PKCS#8, y también en el formato OpenSSH en .NET.
Comprobación de la clave del hostOnSSHHostKeyRecibe el tipo de clave y su huella, para que los compares con tu almacén de hosts conocidos y rechaces una clave desconocida o cambiada.
Comando remotoExecuteAbre un canal, ejecuta el comando y devuelve su salida como una cadena, con un tiempo límite.
Shell interactivaOpenChannel, RequestPTY, RequestShellUna sesión de terminal con el tipo y el tamaño de terminal que elijas.
Entrada y salida de la shellSendChannelData, OnSSHChannelDataEnvía lo que escribe el usuario, recibe lo que imprime el servidor.
Control del terminalSendWindowChange, SendSignal, SendEOFCambia el tamaño del terminal, envía una señal o termina la entrada de un canal.
Canales exec y de subsistemaRequestExec, RequestSubsystemPeticiones de canal de bajo nivel para protocolos propios sobre SSH.
Reenvío de puertos localOpenDirectTCPIPAbre un canal direct-tcpip a un host y puerto accesibles desde el servidor.
Reenvío de puertos remotoRequestForwarding, CancelForwardingPide al servidor que escuche en un puerto y reenvíe sus conexiones de vuelta al cliente.
RekeyRekeyRenueva las claves de sesión de una conexión de larga duración.
Intercambio de claves post-quantumPostQuantumKexActivado por defecto: ofrece mlkem768x25519-sha256 en primer lugar.

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

TsgcSFTPClient implementa SFTP v3 sobre el mismo transporte SSH, con las mismas opciones de autenticación e intercambio de claves que el cliente SSH.

CapacidadAPINotas
Carpeta de inicioRealPathResuelve una ruta como . a la ruta absoluta en el servidor.
Listado de carpetaListDirectoryNombre, tamaño, fecha de modificación e indicador de carpeta de cada entrada.
Subida y descargaPut, GetUna llamada por archivo, con 16 peticiones en vuelo. Una transferencia de 100 MB tarda cerca de un segundo en una red local.
Gestión de archivosRename, Delete, MakeDirectory, RemoveDirectoryTodo lo que necesita un gestor de archivos.
ProgresoOnSFTPProgressInforma de los bytes transferidos, listo para una barra de progreso.

Archivos y carpetas completas

TsgcSCPClient copia archivos por SSH a cualquier servidor que permita el comando scp.

CapacidadAPINotas
Archivos sueltosUpload, DownloadCopia un archivo hacia o desde la ruta remota.
Árboles de carpetasUploadFolder, DownloadFolderCopia una carpeta completa de forma recursiva.
Fechas de archivoPreserveTimesConserva las fechas de modificación y de acceso en el otro lado.
ProgresoOnSCPProgressInforma del nombre del archivo y de los bytes transferidos.

Tu propio servicio SSH

TsgcSSHServer acepta cualquier cliente SSH estándar, incluidas las herramientas de línea de comandos estándar ssh, sftp y scp.

CapacidadAPINotas
EscuchaPort, ActiveInicia y detiene el servidor.
Claves de hostHostKeyFiles, GenerateHostKeyEd25519Claves de host Ed25519, ECDSA y RSA. El procedimiento de clase crea por ti un archivo de clave Ed25519.
Autenticación por contraseñaOnSSHAuthPasswordComprueba el nombre de usuario y la contraseña con tu propio almacén de usuarios.
Autenticación por clave públicaOnSSHAuthPublicKeyRecibe el tipo de clave y su huella SHA256, para que aceptes solo las claves que conoces.
Comandos remotosOnSSHExec, SendChannelData, SendExitStatus, CloseChannelResponde a un comando, informa de su estado de salida y cierra el canal.
Shell interactivaOnSSHShell, OnSSHChannelDataAtiende una sesión de terminal desde tu propio código.
SubsistemasSFTPServerLas peticiones de subsistema como sftp se dirigen a un TsgcSFTPServer enlazado.
Eventos de conexiónOnSSHConnect, OnSSHDisconnectRegistra cada conexión con la dirección del par.

Un servidor de archivos con una jaula por usuario

TsgcSFTPServer se enchufa en TsgcSSHServer y sirve archivos desde una carpeta de la que los clientes no pueden salir.

CapacidadAPINotas
ProtocolosSFTP, SCPSFTP v3, más transferencias scp cuando está activado.
Carpeta raízRootFolderLa carpeta que ven los clientes. Se rechazan las rutas fuera de ella.
Una carpeta por usuarioOnSFTPUserRootDevuelve la raíz de cada usuario, de modo que cada uno ve solo sus propios archivos.
Modo de solo lecturaReadOnlyRechaza subidas, borrados y renombrados.
Control por operaciónOnSFTPOperationSe dispara en cada apertura para lectura o escritura, borrado, renombrado, creación y eliminación de carpetas, cambio de atributos y listado. Pon aAccept a False y el cliente recibe un error de permiso denegado.
Descargas grandesControl de flujoLas descargas usan memoria constante, sea cual sea el tamaño del archivo.

Post-quantum primero

Cliente y servidor ofrecen primero los algoritmos más fuertes y recurren a los clásicos solo cuando el otro lado los necesita.

ÁreaAlgoritmosNotas
Intercambio de clavesmlkem768x25519-sha256ML-KEM-768 combinado con X25519, el valor por defecto de las últimas versiones de SSH. Lo ofrecen en primer lugar el cliente y el servidor.
Intercambio de claves clásicocurve25519, ECDH, Diffie-Hellman group14 y group16Se usa cuando el otro lado no admite el intercambio híbrido.
CifradosAES-GCM, AES-CTRAES-GCM tiene aceleración por hardware en .NET 8 y posteriores.
Claves de host y de usuarioEd25519, ECDSA, RSAFirmas RSA con SHA-2, seleccionadas mediante server-sig-algs.
Archivos de clavePEM, PKCS#8, OpenSSH (.NET)Las claves privadas cifradas se abren con una frase de contraseña.
Intercambio de claves estrictoMitigación de TerrapinCierra el ataque de truncamiento de prefijo contra el handshake SSH.

Compiladores, frameworks y objetivos

Los mismos cinco componentes en Delphi y .NET.

ÁreaDetalle
DelphiDelphi 7 a 13, para VCL, FMX, aplicaciones de consola y servicios.
Destinos de DelphiWindows Win32, Windows Win64 y Linux64.
.NET.NET 8, .NET 9, .NET 10 y .NET Standard 2.0, en código totalmente gestionado y sin OpenSSL.
DemosDemos\27.SSH: cliente SSH, cliente SFTP, cliente SCP, servidor SSH y servidor SFTP.
EdicionesLos cinco componentes se entregan también dentro de sgcWebSockets Enterprise, y All-Access lo incluye todo. En .NET se entregan en el paquete registrado, no en la edición Community.
LicenciasIndependiente. El runtime sgcWebSockets Core viene incluido, sgcCustomIndy se incluye en el pedido y el código fuente completo está incluido.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

Desarrolla con sgcSSH

Descarga la prueba gratuita y ejecuta tu primer comando remoto o subida SFTP desde Delphi o .NET.