sgcSSH matriz de recursos
Tudo o que o sgcSSH faz, mapeado nos três componentes cliente, nos dois componentes servidor e nos algoritmos que eles negociam. As mesmas classes existem em Delphi e .NET, e toda licença inclui o código-fonte completo.
Tudo o que o sgcSSH faz, mapeado nos três componentes cliente, nos dois componentes servidor e nos algoritmos que eles negociam. As mesmas classes existem em Delphi e .NET, e toda licença inclui o código-fonte completo.
Comandos, shells, encaminhamento e rekey
Transferências rápidas, 16 requisições em andamento
Arquivos e pastas inteiras
Autenticação, exec, shell e subsistemas
Uma jail por usuário, modo somente leitura
Troca de chaves pós-quântica primeiro
Delphi 7 a 13 e .NET
O sgcSSH é autossuficiente. Ele já vem com o runtime sgcWebSockets Core embutido, e o complemento sgcCustomIndy em que os componentes Delphi se baseiam está sempre incluído no pedido.
Também dentro do sgcWebSockets. Os cinco componentes também vêm dentro do sgcWebSockets Enterprise, e o All-Access inclui tudo. No .NET eles fazem parte do pacote registrado, não da edição Community gratuita. O sgcSSH é o pacote autônomo para equipes que só precisam de SSH e SFTP.
Três clientes e dois servidores, registrados na página SGC SSH da paleta.
| Componente | Classe | Função | Descrição |
|---|---|---|---|
| Cliente SSH | TsgcSSHClient | Executar comandos | Comandos remotos, um shell interativo com pty, encaminhamento de portas local e remoto e rekey de sessões de longa duração. |
| Cliente SFTP | TsgcSFTPClient | Transferir arquivos | Operações de gerenciador de arquivos SFTP v3 com 16 requisições em andamento, então uma transferência de 100 MB leva cerca de um segundo em uma rede local. |
| Cliente SCP | TsgcSCPClient | Copiar arquivos e pastas | Envia e baixa arquivos únicos ou árvores de pastas inteiras com scp, mantendo os horários dos arquivos se você quiser. |
| Servidor SSH | TsgcSSHServer | Aceitar clientes SSH | Autenticação por senha e chave pública, requisições exec, shell e de subsistema, com chaves de host Ed25519, ECDSA e RSA. |
| Servidor SFTP | TsgcSFTPServer | Servir uma pasta | SFTP v3 e SCP a partir de uma pasta raiz, com uma jail por usuário, um modo somente leitura e um evento para permitir ou negar cada operação. |
O TsgcSSHClient abre uma conexão SSH autenticada e executa nela quantos canais você precisar.
| Recurso | API | Observações |
|---|---|---|
| Conexão | Host, Port, Connect, Disconnect | Porta 22 por padrão. |
| Autenticação por senha | Authentication.Username, Authentication.Password | Login simples com nome de usuário e senha. |
| Autenticação por chave pública | Authentication.PrivateKeyFile, Authentication.Passphrase | Chaves privadas Ed25519, ECDSA e RSA em arquivos PEM ou PKCS#8, e também no formato OpenSSH no .NET. |
| Verificação da chave do host | OnSSHHostKey | Recebe o tipo da chave e a impressão digital, para você compará-los com o seu repositório de hosts conhecidos e rejeitar uma chave desconhecida ou alterada. |
| Comando remoto | Execute | Abre um canal, executa o comando e devolve a saída como string, com um timeout. |
| Shell interativo | OpenChannel, RequestPTY, RequestShell | Uma sessão de terminal com o tipo e o tamanho de terminal que você escolher. |
| Entrada e saída do shell | SendChannelData, OnSSHChannelData | Envie o que o usuário digita, receba o que o servidor imprime. |
| Controle do terminal | SendWindowChange, SendSignal, SendEOF | Redimensione o terminal, envie um sinal ou encerre a entrada de um canal. |
| Canais exec e de subsistema | RequestExec, RequestSubsystem | Requisições de canal de baixo nível para protocolos personalizados sobre SSH. |
| Encaminhamento de portas local | OpenDirectTCPIP | Abre um canal direct-tcpip para um host e uma porta acessíveis a partir do servidor. |
| Encaminhamento de portas remoto | RequestForwarding, CancelForwarding | Pede ao servidor que escute em uma porta e encaminhe as conexões de volta ao cliente. |
| Rekey | Rekey | Renova as chaves de sessão de uma conexão de longa duração. |
| Troca de chaves pós-quântica | PostQuantumKex | Ativada por padrão: oferece mlkem768x25519-sha256 primeiro. |
O TsgcSFTPClient implementa SFTP v3 sobre o mesmo transporte SSH, com as mesmas opções de autenticação e de troca de chaves do cliente SSH.
| Recurso | API | Observações |
|---|---|---|
| Pasta home | RealPath | Resolve um caminho como . para o caminho absoluto no servidor. |
| Listagem de pasta | ListDirectory | Nome, tamanho, data de modificação e indicador de pasta de cada entrada. |
| Upload e download | Put, Get | Uma chamada por arquivo, com 16 requisições em andamento. Uma transferência de 100 MB leva cerca de um segundo em uma rede local. |
| Gerenciamento de arquivos | Rename, Delete, MakeDirectory, RemoveDirectory | Tudo o que um gerenciador de arquivos precisa. |
| Progresso | OnSFTPProgress | Informa os bytes transferidos, pronto para uma barra de progresso. |
O TsgcSCPClient copia arquivos via SSH para qualquer servidor que permita o comando scp.
| Recurso | API | Observações |
|---|---|---|
| Arquivos únicos | Upload, Download | Copie um arquivo para o caminho remoto ou a partir dele. |
| Árvores de pastas | UploadFolder, DownloadFolder | Copie uma pasta inteira de forma recursiva. |
| Horários dos arquivos | PreserveTimes | Mantém os horários de modificação e de acesso do outro lado. |
| Progresso | OnSCPProgress | Informa o nome do arquivo e os bytes transferidos. |
O TsgcSSHServer aceita qualquer cliente SSH padrão, inclusive as ferramentas de linha de comando padrão ssh, sftp e scp.
| Recurso | API | Observações |
|---|---|---|
| Escuta | Port, Active | Inicie e pare o servidor. |
| Chaves de host | HostKeyFiles, GenerateHostKeyEd25519 | Chaves de host Ed25519, ECDSA e RSA. O class procedure cria um arquivo de chave Ed25519 para você. |
| Autenticação por senha | OnSSHAuthPassword | Confira o nome de usuário e a senha no seu próprio repositório de usuários. |
| Autenticação por chave pública | OnSSHAuthPublicKey | Recebe o tipo da chave e a impressão digital SHA256, para você aceitar apenas as chaves que conhece. |
| Comandos remotos | OnSSHExec, SendChannelData, SendExitStatus, CloseChannel | Responda a um comando, informe seu exit status e feche o canal. |
| Shell interativo | OnSSHShell, OnSSHChannelData | Atenda uma sessão de terminal a partir do seu próprio código. |
| Subsistemas | SFTPServer | Requisições de subsistema como sftp são roteadas para um TsgcSFTPServer vinculado. |
| Eventos de conexão | OnSSHConnect, OnSSHDisconnect | Registre cada conexão com o endereço do peer. |
O TsgcSFTPServer se encaixa no TsgcSSHServer e serve arquivos de uma pasta da qual os clientes não conseguem sair.
| Recurso | API | Observações |
|---|---|---|
| Protocolos | SFTP, SCP | SFTP v3, mais transferências scp quando ativado. |
| Pasta raiz | RootFolder | A pasta mostrada aos clientes. Caminhos fora dela são recusados. |
| Uma pasta por usuário | OnSFTPUserRoot | Devolva a raiz de cada usuário, para que cada um veja apenas os seus próprios arquivos. |
| Modo somente leitura | ReadOnly | Recusa uploads, exclusões e renomeações. |
| Controle por operação | OnSFTPOperation | Dispara a cada abertura para leitura ou escrita, remoção, renomeação, criação e remoção de pasta, mudança de atributos e listagem. Defina aAccept como False e o cliente recebe um erro de permissão negada. |
| Downloads grandes | Controle de fluxo | Os downloads usam memória constante, seja qual for o tamanho do arquivo. |
Cliente e servidor oferecem primeiro os algoritmos mais fortes e só recorrem aos clássicos quando o outro lado precisa deles.
| Área | Algoritmos | Observações |
|---|---|---|
| Troca de chaves | mlkem768x25519-sha256 | ML-KEM-768 combinado com X25519, o padrão das versões mais recentes do SSH. Oferecido primeiro pelo cliente e pelo servidor. |
| Troca de chaves clássica | curve25519, ECDH, Diffie-Hellman group14 e group16 | Usados quando o outro lado não suporta a troca híbrida. |
| Cifras | AES-GCM, AES-CTR | O AES-GCM tem aceleração por hardware no .NET 8 e posterior. |
| Chaves de host e de usuário | Ed25519, ECDSA, RSA | Assinaturas RSA com SHA-2, selecionadas por meio do server-sig-algs. |
| Arquivos de chave | PEM, PKCS#8, OpenSSH (.NET) | Chaves privadas criptografadas são abertas com uma passphrase. |
| Strict key exchange | Mitigação do Terrapin | Fecha o ataque de truncamento de prefixo no handshake SSH. |
Os mesmos cinco componentes em Delphi e .NET.
| Área | Detalhe |
|---|---|
| Delphi | Delphi 7 até 13, para VCL, FMX, aplicações de console e serviços. |
| Destinos Delphi | Windows Win32, Windows Win64 e Linux64. |
| .NET | .NET 8, .NET 9, .NET 10 e .NET Standard 2.0, em código totalmente gerenciado e sem OpenSSL. |
| Demos | Demos\27.SSH: cliente SSH, cliente SFTP, cliente SCP, servidor SSH e servidor SFTP. |
| Edições | Os cinco componentes também vêm dentro do sgcWebSockets Enterprise, e o All-Access inclui tudo. No .NET eles vêm no pacote registrado, não na edição Community. |
| Licenciamento | Autônomo. O runtime sgcWebSockets Core vem embutido, o sgcCustomIndy está incluído no pedido e o código-fonte completo está incluído. |