Produto autônomo SSH & SFTP pós-quânticos

sgcSSH: clientes e servidores SSH & SFTP para Delphi & .NET

Cinco componentes cobrem as duas pontas de uma conexão SSH. O TsgcSSHClient executa comandos remotos, abre um shell interativo com pty e encaminha portas. O TsgcSFTPClient e o TsgcSCPClient movem arquivos e pastas inteiras. O TsgcSSHServer e o TsgcSFTPServer colocam um serviço SSH e SFTP próprio dentro da sua aplicação, com uma jail por usuário. A troca de chaves híbrida pós-quântica mlkem768x25519-sha256, o padrão das versões mais recentes do SSH, é oferecida primeiro tanto pelo cliente quanto pelo servidor.

Código-fonte completo
Delphi 7 a 13 & .NET
Troca de chaves ML-KEM-768 + X25519 mlkem768x25519-sha256, oferecida primeiro dos dois lados
Clientes SSH, SFTP, SCP
Servidores SSH, SFTP
5 Componentes Três clientes e dois servidores
16 Requisições SFTP em andamento Uma transferência de 100 MB leva cerca de um segundo em uma rede local
2 Linguagens Delphi e .NET, as mesmas cinco classes
100% Código-fonte incluído Todos os componentes e o runtime Core embutido
12 Meses de atualizações Todas as versões publicadas enquanto a sua licença estiver ativa

Três coisas que vale saber primeiro

O que o sgcSSH precisa de você, se você já possui esses componentes e em que a versão Delphi se baseia. As três respostas são curtas.

O sgcSSH é autossuficiente

Como produto autônomo, ele inclui o runtime sgcWebSockets Core, junto com a criptografia nativa em que a troca de chaves roda: ML-KEM-768, X25519, ECDH, AES-GCM e a família SHA-2. Um SKU, um instalador.

O código-fonte completo acompanha toda licença, então o código do protocolo pode ser percorrido no seu próprio depurador em vez de sumir dentro de um binário.

Sobreposição de edição

Já está na sua edição do sgcWebSockets?

Os cinco componentes SSH vêm dentro do sgcWebSockets Enterprise, e o All-Access inclui tudo. No .NET eles vêm no pacote sgcWebSockets registrado, não na edição Community gratuita.

O sgcSSH existe para o caso oposto: você quer SSH e SFTP na sua aplicação sem licenciar uma edição completa do sgcWebSockets. Confira o que a sua edição já cobre antes de comprar.

Complemento necessário

O SSH para Delphi precisa do sgcCustomIndy

Os componentes Delphi são construídos sobre as units SSH da biblioteca Indy corrigida que o sgcCustomIndy entrega como complemento. O sgcCustomIndy está sempre incluído quando você pede o sgcSSH.

O preço do sgcSSH exibido já cobre o sgcCustomIndy.

Três clientes, dois servidores

Cada um é um componente não visual que você solta em um formulário ou cria em código, registrado na página SGC SSH da paleta. Defina o host e as credenciais, ligue os eventos e depois conecte ou comece a escutar. As classes .NET têm os mesmos nomes.

Cliente SSH1 componente

Comandos, shells e túneis

O TsgcSSHClient conecta com senha ou chave privada, e o OnSSHHostKey entrega o tipo da chave do host e a impressão digital para você conferir no seu repositório de hosts conhecidos. O Execute roda um comando e devolve a saída em uma só chamada. Para uma sessão interativa, OpenChannel, RequestPTY e RequestShell abrem um terminal, SendChannelData digita nele e OnSSHChannelData devolve o que o servidor imprime, com SendWindowChange e SendSignal para o restante do protocolo de terminal. O OpenDirectTCPIP encaminha uma conexão local através do servidor, o RequestForwarding pede ao servidor que encaminhe de volta uma porta remota, e o Rekey renova as chaves de sessão de uma conexão de longa duração.

TsgcSSHClient exec · shell · pty · encaminhamento de portas · rekey
Cliente SFTP1 componente

Transferências rápidas de arquivos, um método para cada

O TsgcSFTPClient fala SFTP v3 sobre a mesma conexão SSH. O RealPath resolve a pasta home, o ListDirectory devolve nomes, tamanhos, datas e o indicador de pasta, e Put e Get enviam e baixam um arquivo em uma só chamada. Rename, Delete, MakeDirectory e RemoveDirectory cobrem o resto de um gerenciador de arquivos, e o OnSFTPProgress informa os bytes transferidos para uma barra de progresso. As transferências mantêm 16 requisições em andamento em vez de esperar cada bloco, então um arquivo de 100 MB leva cerca de um segundo em uma rede local.

TsgcSFTPClient SFTP v3 · 16 requisições em andamento
Cliente SCP1 componente

Arquivos e pastas inteiras com scp

O TsgcSCPClient copia arquivos via SSH para qualquer servidor que permita o comando scp, sem um serviço de transferência de arquivos separado. Upload e Download copiam um arquivo, UploadFolder e DownloadFolder copiam uma árvore de pastas inteira de forma recursiva, e PreserveTimes mantém os horários de modificação e de acesso do outro lado. O OnSCPProgress informa o nome do arquivo e os bytes transferidos.

TsgcSCPClient arquivos · pastas · preservar horários
Servidor SSH1 componente

Seu próprio serviço SSH, no seu processo

O TsgcSSHServer escuta na porta que você escolher e prova sua identidade com chaves de host Ed25519, ECDSA ou RSA carregadas de HostKeyFiles, e o GenerateHostKeyEd25519 cria uma para você. OnSSHAuthPassword e OnSSHAuthPublicKey decidem quem entra, o segundo com o tipo da chave e a impressão digital SHA256. O OnSSHExec responde a comandos remotos, o OnSSHShell atende uma sessão interativa, e as requisições de subsistema são roteadas para o seu tratador ou para o TsgcSFTPServer. Qualquer cliente SSH padrão se conecta, inclusive as ferramentas de linha de comando padrão ssh, sftp e scp.

TsgcSSHServer senha · chave pública · exec · shell · subsistemas
Servidor SFTP1 componente

Um servidor de arquivos com uma jail por usuário

O TsgcSFTPServer se liga ao servidor SSH pela propriedade SFTPServer e atende SFTP v3 e, com SCP ativado, transferências scp a partir de RootFolder. Os clientes não conseguem sair dela. O OnSFTPUserRoot dá a cada usuário uma pasta própria, o ReadOnly recusa uploads, exclusões e renomeações, e o OnSFTPOperation dispara a cada abertura, remoção, renomeação, mudança de pasta, mudança de atributos e listagem, para você permitir ou negar cada uma e registrá-la. O controle de fluxo mantém constante a memória de um download grande, seja qual for o tamanho do arquivo.

TsgcSFTPServer SFTP v3 · SCP · jail por usuário · somente leitura

SSH e SFTP a partir do seu próprio código

Os componentes são componentes não visuais comuns, então se encaixam em qualquer tipo de aplicação: um app desktop VCL ou FMX, uma ferramenta de console, um serviço do Windows, um daemon Linux ou um worker .NET. Estes são os padrões que os clientes constroem, cada um ligado ao membro que o aciona.

Executar comandos de manutenção em servidores Linux Execute

Reinicie um serviço, leia um log ou verifique o espaço em disco a partir de uma ferramenta Delphi ou .NET, e receba a saída como string.

Uma janela de terminal incorporada RequestPTY

Abra um shell com pty e mostre-o na sua própria interface, para ferramentas de suporte e consoles de dispositivos.

Troca agendada de arquivos com parceiros Put / Get

Envie notas fiscais e baixe relatórios via SFTP a partir de um serviço, com eventos de progresso e de erro.

Alcançar um banco de dados atrás de um bastion host OpenDirectTCPIP

Encaminhe uma conexão pelo servidor SSH em vez de abrir a porta do banco de dados para a rede.

Uma caixa de entrada SFTP dentro do seu produto OnSFTPUserRoot

Dê a cada cliente uma pasta privada, com o seu próprio banco de usuários decidindo quem entra.

Tráfego que continua privado no futuro PostQuantumKex

A troca híbrida ML-KEM-768 e X25519 protege sessões gravadas hoje contra um futuro computador quântico.

Pós-quântico primeiro, só algoritmos modernos

Cliente e servidor negociam os algoritmos mais fortes que os dois lados suportam, começando pela troca de chaves híbrida pós-quântica. Nada precisa ser configurado para obtê-la.

O mlkem768x25519-sha256 é oferecido primeiro

A troca híbrida combina ML-KEM-768 com X25519, então as chaves de sessão continuam seguras até contra um atacante que grava o tráfego hoje e terá um computador quântico depois. É o padrão das versões mais recentes do SSH, e os clientes e servidores SSH atuais a negociam automaticamente. O PostQuantumKex vem ativado por padrão.

Algoritmos clássicos como alternativa

Quando o outro lado não a suporta, a troca recorre a curve25519, ECDH e Diffie-Hellman group14 e group16. As cifras são AES-GCM e AES-CTR, e as chaves de host e de usuário são Ed25519, ECDSA ou RSA.

Strict key exchange contra o Terrapin

O strict key exchange fecha o ataque Terrapin de truncamento de prefixo, e o server-sig-algs deixa o cliente escolher uma assinatura RSA com SHA-2 em vez da antiga com SHA-1. As chaves privadas são carregadas de arquivos PEM e PKCS#8, e a versão .NET também lê o formato de chave do OpenSSH.

Criptografia nativa nas duas plataformas

A troca de chaves roda nas units de criptografia nativa do sgcWebSockets no Delphi e em código totalmente gerenciado no .NET, sem OpenSSL para distribuir na versão .NET. No .NET 8 e posterior o AES-GCM tem aceleração por hardware.

Execute um comando, sirva uma pasta

Os clientes seguem um só padrão: defina o host e as credenciais, conecte, chame um método. Os servidores seguem outro: defina a porta e a chave do host, ligue os eventos, ative.

var
  SSH: TsgcSSHClient;
  SFTP: TsgcSFTPClient;
begin
  // executa um comando
  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;   // confira a impressão digital
  SSH.Connect;
  Memo1.Text := SSH.Execute('uname -a');
  SSH.Disconnect;

  // envia um arquivo via 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;

O PostQuantumKex vem ativado por padrão, então as duas sessões negociam mlkem768x25519-sha256 sempre que o servidor o suportar.

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);   // o seu repositório de usuários
end;

procedure TForm1.SFTPUserRoot(Sender: TObject; const aUsername: string;
  var aRootFolder: string);
begin
  aRootFolder := 'D:\sftp\' + aUsername;   // uma jail por usuário
end;

Conecte com sftp -P 2222 user@127.0.0.1 ou scp -P 2222 file.txt user@127.0.0.1:/. As demos em Demos\27.SSH cobrem os cinco componentes.

Delphi e .NET, desktop e servidor

Os mesmos cinco componentes nas duas plataformas, para aplicações desktop, ferramentas de console e serviços.

Delphi Delphi 7 a 13, VCL, FMX, console e serviços
Windows Win32 Windows Win64 Linux64
.NET Código totalmente gerenciado, sem OpenSSL
.NET 8 .NET 9 .NET 10 .NET Standard 2.0
Componentes Registrados na página SGC SSH da paleta
TsgcSSHClient TsgcSFTPClient TsgcSCPClient TsgcSSHServer TsgcSFTPServer
Instalador de avaliação O instalador de avaliação do sgcWebSockets All-Access inclui os componentes SSH
Um download, os cinco componentes

Baixar o instalador de avaliação →

Um pacote autônomo

O sgcSSH é licenciado separadamente, a partir de €398 para um único desenvolvedor. Todas as licenças incluem código-fonte completo, 1 ano de atualizações e de 50% a 70% de desconto na renovação: 50% ao renovar um pacote, 60% para dois, 70% para três ou mais. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto e sgcSSH contam cada um como um pacote.

sgcSSH

€398

Licenças Single, Team e Site disponíveis.

  • Cliente SSH: comandos, shell com pty, encaminhamento de portas, rekey
  • Clientes SFTP e SCP para arquivos e pastas
  • Servidores SSH e SFTP com uma jail por usuário
  • Troca de chaves pós-quântica mlkem768x25519-sha256
  • Runtime sgcWebSockets Core e sgcCustomIndy incluídos
  • Delphi 7 a 13 & .NET
  • Código-fonte completo
  • 1 ano de atualizações

O sgcSSH inclui o runtime sgcWebSockets Core, então não há mais nada a comprar para os componentes SSH e SFTP.

O checkout lista três itens: o direito de uso do runtime sgcWebSockets Core, cobrado a zero, o próprio pacote sgcSSH e o sgcCustomIndy, que os componentes SSH para Delphi exigem. O sgcCustomIndy está sempre incluído e o preço exibido já o cobre. Detalhes completos de preços.

3,000+Desenvolvedores
20+Anos
761+Componentes
30+Integrações de API
5Plataformas
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

Entregue SSH e SFTP, prontos para a era pós-quântica

Clientes e servidores em código nativo Delphi e .NET, com o runtime embutido e o código-fonte completo na caixa. Baixe o instalador de avaliação All-Access e conecte-se hoje ao seu primeiro servidor.

Outros produtos da eSeGeCe

Combine o sgcSSH com as nossas outras bibliotecas de componentes para Delphi, C++ Builder e .NET.

sgcWebSockets

A biblioteca completa: clientes e servidores WebSocket, HTTP/2, IoT, P2P e componentes de IA. A edição Enterprise também inclui os componentes SSH e SFTP.

Saiba mais →

sgcCustomIndy

A biblioteca Indy personalizada sobre a qual o sgcWebSockets Enterprise é construído, empacotada como complemento. Exigida pelos componentes SSH para Delphi, sempre incluída nos pedidos do sgcSSH.

Saiba mais →

sgcCrypto

Cifras simétricas e assimétricas, hashing e algoritmos pós-quânticos como ML-KEM e ML-DSA. Disponível gratuitamente a partir do sgcWebSockets Standard.

Saiba mais →

sgcAuth

Clientes OAuth2 e JWT, login por passkey WebAuthn, TOTP, LDAP, SAML e OpenID Connect, com o runtime Core embutido.

Saiba mais →

sgcHTTP

Servidor HTTP, clientes HTTP/2 e gRPC, além de Google Cloud Pub/Sub, Calendar e Firebase Cloud Messaging, com o runtime Core embutido.

Saiba mais →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, com o runtime Core embutido.

Saiba mais →