SSH.NET é uma biblioteca Secure Shell (SSH-2) para .NET, otimizada para paralelismo.
Execução do comando SSH usando métodos síncronos e assíncronos
Funcionalidade SFTP para operações síncronas e assíncronas
Funcionalidade SCP
Encaminhamento de porta remoto, dinâmico e local
Implementação interativa de shell/terminal
Autenticação via chave pública, senha e métodos interativos de teclado, incluindo multifator
Conexão via SOCKS4, SOCKS5 ou proxy HTTP
usando (var cliente = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("caminho/para/minha/chave"))){client.Connect();usando SshCommand cmd = client.RunCommand( "echo 'Olá mundo!'");Console.WriteLine(cmd.Result); // "Olá, mundo!n"}
usando (var cliente = new SftpClient("sftp.foo.com", "guest", "pwd")){client.Connect();using (FileStream fs = File.OpenRead(@"C:tmptest-file.txt ")){client.UploadFile(fs, "/home/guest/test-file.txt");}foreach (arquivo ISftpFile em client.ListDirectory("/home/guest/")){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
Os principais tipos fornecidos por esta biblioteca são:
Renci.SshNet.SshClient
Renci.SshNet.SftpClient
Renci.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Renci.SshNet.SshCommand
Renci.SshNet.ShellStream
Outros exemplos
Navegador de API
SSH.NET oferece suporte aos seguintes métodos de criptografia:
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
SSH.NET oferece suporte aos seguintes métodos de troca de chaves:
curva25519-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group-exchange-sha256
diffie-hellman-group-exchange-sha1
diffie-hellman-group16-sha512
diffie-hellman-group14-sha256
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1
SSH.NET oferece suporte aos seguintes formatos de chave privada:
RSA em
Formato PEM tradicional OpenSSL ("BEGIN RSA PRIVATE KEY")
Formato OpenSSL PKCS#8 PEM ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Formato ssh.com ("BEGIN SSH2 ENCRYPTED PRIVATE KEY")
Formato de chave OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
DSA em
Formato PEM tradicional OpenSSL ("BEGIN DSA PRIVATE KEY")
Formato OpenSSL PKCS#8 PEM ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Formato ssh.com ("BEGIN SSH2 ENCRYPTED PRIVATE KEY")
ECDSA 256/384/521 em
Formato PEM tradicional OpenSSL ("BEGIN EC PRIVATE KEY")
Formato OpenSSL PKCS#8 PEM ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Formato de chave OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
ED25519 em
Formato OpenSSL PKCS#8 PEM ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Formato de chave OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
As chaves privadas no formato PEM tradicional do OpenSSL podem ser criptografadas usando um dos seguintes métodos de criptografia:
DES-EDE3-CBC
DES-EDE3-CFB
DES-CBC
AES-128-CBC
AES-192-CBC
AES-256-CBC
As chaves privadas no formato OpenSSL PKCS#8 PEM podem ser criptografadas usando qualquer método de criptografia compatível com o BouncyCastle.
As chaves privadas no formato ssh.com podem ser criptografadas usando um dos seguintes métodos de criptografia:
3des-cbc
As chaves privadas no formato de chave OpenSSH podem ser criptografadas usando um dos seguintes métodos de criptografia:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
SSH.NET oferece suporte aos seguintes algoritmos de chave de host:
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh-dss
SSH.NET oferece suporte aos seguintes algoritmos MAC:
hmac-sha2-256
hmac-sha2-512
hmac-sha1
SSH.NET oferece suporte aos seguintes algoritmos de compactação:
nenhum (padrão)
SSH.NET oferece suporte às seguintes estruturas de destino:
.NETFramework 4.6.2 (e superior)
.NET Padrão 2.0 e 2.1
.NET 6 (e superior)
A biblioteca não possui requisitos especiais para construção, exceto um SDK .NET atualizado. Veja também CONTRIBUTING.md.
Você ou sua empresa contam com SSH.NET em seus projetos? Se você quiser nos encorajar a continuar e mostrar que aprecia nosso trabalho, considere se tornar um patrocinador por meio do GitHub Sponsors.