SSH.NET est une bibliothèque Secure Shell (SSH-2) pour .NET, optimisée pour le parallélisme.
Exécution de la commande SSH à l'aide de méthodes synchrones et asynchrones
Fonctionnalité SFTP pour les opérations synchrones et asynchrones
Fonctionnalité SCP
Redirection de port distante, dynamique et locale
Implémentation d'un shell/terminal interactif
Authentification via des méthodes de clé publique, de mot de passe et de clavier interactif, y compris multifacteur
Connexion via SOCKS4, SOCKS5 ou proxy HTTP
using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key"))){client.Connect();using SshCommand cmd = client.RunCommand( "echo 'Bonjour tout le monde !'");Console.WriteLine(cmd.Result); // "Bonjour tout le monde ! n"}
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 (fichier ISftpFile dans client.ListDirectory("/home/guest/"){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
Les principaux types fournis par cette bibliothèque sont :
Renci.SshNet.SshClient
Renci.SshNet.SftpClient
Renci.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Renci.SshNet.SshCommand
Renci.SshNet.ShellStream
Autres exemples
Navigateur API
SSH.NET prend en charge les méthodes de chiffrement suivantes :
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
SSH.NET prend en charge les méthodes d'échange de clés suivantes :
courbe25519-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 prend en charge les formats de clé privée suivants :
RSA en
Format PEM traditionnel OpenSSL (« BEGIN RSA PRIVATE KEY »)
Format PEM OpenSSL PKCS#8 ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Format ssh.com ("BEGIN SSH2 ENCRYPTED PRIVATE KEY")
Format de clé OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
DSA dans
Format PEM traditionnel OpenSSL (« BEGIN DSA PRIVATE KEY »)
Format PEM OpenSSL PKCS#8 ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Format ssh.com ("BEGIN SSH2 ENCRYPTED PRIVATE KEY")
ECDSA 256/384/521 pouces
Format PEM traditionnel OpenSSL ("BEGIN EC PRIVATE KEY")
Format PEM OpenSSL PKCS#8 ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Format de clé OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
ED25519 dans
Format PEM OpenSSL PKCS#8 ("BEGIN PRIVATE KEY", "BEGIN ENCRYPTED PRIVATE KEY")
Format de clé OpenSSH ("BEGIN OPENSSH PRIVATE KEY")
Les clés privées au format PEM traditionnel OpenSSL peuvent être chiffrées à l'aide de l'une des méthodes de chiffrement suivantes :
DES-EDE3-CBC
DES-EDE3-CFB
DES-CBC
AES-128-CBC
AES-192-CBC
AES-256-CBC
Les clés privées au format OpenSSL PKCS#8 PEM peuvent être chiffrées à l'aide de n'importe quelle méthode de chiffrement prise en charge par BouncyCastle.
Les clés privées au format ssh.com peuvent être chiffrées à l'aide de l'une des méthodes de chiffrement suivantes :
3des-cbc
Les clés privées au format de clé OpenSSH peuvent être chiffrées à l'aide de l'une des méthodes de chiffrement suivantes :
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
SSH.NET prend en charge les algorithmes de clé d'hôte suivants :
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh-dss
SSH.NET prend en charge les algorithmes MAC suivants :
hmac-sha2-256
hmac-sha2-512
hmac-sha1
SSH.NET prend en charge les algorithmes de compression suivants :
aucun (par défaut)
SSH.NET prend en charge les frameworks cibles suivants :
.NETFramework 4.6.2 (et supérieur)
.NET Standard 2.0 et 2.1
.NET 6 (et supérieur)
La bibliothèque n’a aucune exigence particulière à construire, autre qu’un SDK .NET à jour. Voir également CONTRIBUTION.md.
Vous ou votre entreprise comptez sur SSH.NET dans vos projets ? Si vous souhaitez nous encourager à continuer et nous montrer que vous appréciez notre travail, envisagez de devenir sponsor via GitHub Sponsors.