SSH.NET
SSH.NET es una biblioteca Secure Shell (SSH-2) para .NET, optimizada para el paralelismo.
Características clave
- Ejecución del comando SSH utilizando métodos sincrónicos y asincrónicos
- Funcionalidad SFTP para operaciones síncronas y asíncronas
- funcionalidad SCP
- Reenvío de puertos remoto, dinámico y local
- Implementación interactiva de shell/terminal
- Autenticación mediante clave pública, contraseña y métodos interactivos con teclado, incluido multifactor
- Conexión a través de SOCKS4, SOCKS5 o proxy HTTP
Cómo utilizar
Ejecutar un comando
using ( var client = new SshClient ( " sftp.foo.com " , " guest " , new PrivateKeyFile ( " path/to/my/key " ) ) )
{
client . Connect ( ) ;
using SshCommand cmd = client . RunCommand ( " echo 'Hello World!' " ) ;
Console . WriteLine ( cmd . Result ) ; // "Hello World!n"
}
Cargar y enumerar archivos usando SFTP
using ( var client = 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 ( ISftpFile file in client . ListDirectory ( " /home/guest/ " ) )
{
Console . WriteLine ( $" { file . FullName } { file . LastWriteTime } " ) ;
}
}
Tipos principales
Los principales tipos proporcionados por esta biblioteca son:
- Renci.SshNet.SshClient
- Renci.SshNet.SftpClient
- Renci.SshNet.ScpClient
- Renci.SshNet.PrivateKeyFile
- Renci.SshNet.SshCommand
- Renci.SshNet.ShellStream
Documentación adicional
- Más ejemplos
- Navegador API
Métodos de cifrado
SSH.NET admite los siguientes métodos de cifrado:
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-gcm @openssh.com
- aes256-gcm @openssh.com
- chacha20-poly1305 @openssh.com
- aes128-cbc
- aes192-cbc
- aes256-cbc
- 3des-cbc
Métodos de intercambio de claves
SSH.NET admite los siguientes métodos de intercambio de claves:
- curva25519-sha256
- curva25519-sha256 @libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
- intercambio-de-grupo-diffie-hellman-sha256
- diffie-hellman-grupo-intercambio-sha1
- grupo-diffie-hellman16-sha512
- grupo-diffie-hellman14-sha256
- diffie-hellman-grupo14-sha1
- diffie-hellman-grupo1-sha1
Autenticación de clave pública
SSH.NET admite los siguientes formatos de clave privada:
- RSA en
- Formato PEM tradicional OpenSSL ("COMENZAR CLAVE PRIVADA RSA")
- Formato OpenSSL PKCS#8 PEM ("COMENZAR CLAVE PRIVADA", "COMENZAR CLAVE PRIVADA CIFRADA")
- Formato ssh.com ("COMENZAR CLAVE PRIVADA CIFRADA SSH2")
- Formato de clave OpenSSH ("COMENZAR CLAVE PRIVADA OPENSSH")
- DSA en
- Formato PEM tradicional OpenSSL ("COMENZAR CLAVE PRIVADA DSA")
- Formato OpenSSL PKCS#8 PEM ("COMENZAR CLAVE PRIVADA", "COMENZAR CLAVE PRIVADA CIFRADA")
- Formato ssh.com ("COMENZAR CLAVE PRIVADA CIFRADA SSH2")
- ECDSA 256/384/521 en
- Formato PEM tradicional OpenSSL ("BEGIN EC PRIVATE KEY")
- Formato OpenSSL PKCS#8 PEM ("COMENZAR CLAVE PRIVADA", "COMENZAR CLAVE PRIVADA CIFRADA")
- Formato de clave OpenSSH ("COMENZAR CLAVE PRIVADA OPENSSH")
- ED25519 en
- Formato OpenSSL PKCS#8 PEM ("COMENZAR CLAVE PRIVADA", "COMENZAR CLAVE PRIVADA CIFRADA")
- Formato de clave OpenSSH ("COMENZAR CLAVE PRIVADA OPENSSH")
Las claves privadas en formato PEM tradicional de OpenSSL se pueden cifrar utilizando uno de los siguientes métodos de cifrado:
- DES-EDE3-CBC
- DES-EDE3-CFB
- DES-CBC
- AES-128-CBC
- AES-192-CBC
- AES-256-CBC
Las claves privadas en formato OpenSSL PKCS#8 PEM se pueden cifrar utilizando cualquier método de cifrado compatible con BouncyCastle.
Las claves privadas en formato ssh.com se pueden cifrar utilizando uno de los siguientes métodos de cifrado:
Las claves privadas en formato de clave OpenSSH se pueden cifrar utilizando uno de los siguientes métodos de cifrado:
- 3des-cbc
- aes128-cbc
- aes192-cbc
- aes256-cbc
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-gcm @openssh.com
- aes256-gcm @openssh.com
- chacha20-poly1305 @openssh.com
Algoritmos clave de host
SSH.NET admite los siguientes algoritmos de clave de host:
- ssh-ed25519
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
- rsa-sha2-512
- rsa-sha2-256
- ssh-rsa
- ssh-dss
Código de autenticación de mensaje
SSH.NET admite los siguientes algoritmos MAC:
- hmac-sha2-256
- hmac-sha2-512
- hmac-sha1
- hmac-sha2-256-etm @openssh.com
- hmac-sha2-512-etm @openssh.com
- hmac-sha1-etm @openssh.com
Compresión
SSH.NET admite los siguientes algoritmos de compresión:
- ninguno (predeterminado)
- zlib @openssh.com
Soporte de marco
SSH.NET admite los siguientes marcos de destino:
- .NETFramework 4.6.2 (y superior)
- Estándar .NET 2.0 y 2.1
- .NET 6 (y superior)
Construyendo la biblioteca
La biblioteca no tiene requisitos especiales para construir, aparte de un SDK .NET actualizado. Véase también CONTRIBUTING.md.
Compatible con SSH.NET
¿Usted o su empresa confían en SSH.NET en sus proyectos? Si desea animarnos a seguir adelante y demostrarnos que aprecia nuestro trabajo, considere convertirse en patrocinador a través de GitHub Sponsors.