SSH.NET ist eine Secure Shell (SSH-2)-Bibliothek für .NET, optimiert für Parallelität.
Ausführung von SSH-Befehlen mit synchronen und asynchronen Methoden
SFTP-Funktionalität für synchrone und asynchrone Vorgänge
SCP-Funktionalität
Remote-, dynamische und lokale Portweiterleitung
Interaktive Shell-/Terminal-Implementierung
Authentifizierung über Publickey, Passwort und tastaturinteraktive Methoden, inklusive Multi-Faktor
Verbindung über SOCKS4, SOCKS5 oder HTTP-Proxy
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); // "Hallo Welt!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 (ISftpFile-Datei in client.ListDirectory("/home/guest/")){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
Die von dieser Bibliothek bereitgestellten Haupttypen sind:
Renci.SshNet.SshClient
Renci.SshNet.SftpClient
Renci.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Renci.SshNet.SshCommand
Renci.SshNet.ShellStream
Weitere Beispiele
API-Browser
SSH.NET unterstützt die folgenden Verschlüsselungsmethoden:
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
SSH.NET unterstützt die folgenden Schlüsselaustauschmethoden:
Kurve25519-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 unterstützt die folgenden privaten Schlüsselformate:
RSA in
Traditionelles OpenSSL-PEM-Format („BEGIN RSA PRIVATE KEY“)
OpenSSL PKCS#8 PEM-Format („BEGIN PRIVATE KEY“, „BEGIN ENCRYPTED PRIVATE KEY“)
ssh.com-Format („BEGIN SSH2 ENCRYPTED PRIVATE KEY“)
OpenSSH-Schlüsselformat („BEGIN OPENSSH PRIVATE KEY“)
DSA in
Traditionelles OpenSSL-PEM-Format („BEGIN DSA PRIVATE KEY“)
OpenSSL PKCS#8 PEM-Format („BEGIN PRIVATE KEY“, „BEGIN ENCRYPTED PRIVATE KEY“)
ssh.com-Format („BEGIN SSH2 ENCRYPTED PRIVATE KEY“)
ECDSA 256/384/521 Zoll
Traditionelles OpenSSL-PEM-Format („BEGIN EC PRIVATE KEY“)
OpenSSL PKCS#8 PEM-Format („BEGIN PRIVATE KEY“, „BEGIN ENCRYPTED PRIVATE KEY“)
OpenSSH-Schlüsselformat („BEGIN OPENSSH PRIVATE KEY“)
ED25519 Zoll
OpenSSL PKCS#8 PEM-Format („BEGIN PRIVATE KEY“, „BEGIN ENCRYPTED PRIVATE KEY“)
OpenSSH-Schlüsselformat („BEGIN OPENSSH PRIVATE KEY“)
Private Schlüssel im traditionellen OpenSSL-PEM-Format können mit einer der folgenden Verschlüsselungsmethoden verschlüsselt werden:
DES-EDE3-CBC
DES-EDE3-CFB
DES-CBC
AES-128-CBC
AES-192-CBC
AES-256-CBC
Private Schlüssel im OpenSSL PKCS#8 PEM-Format können mit jeder von BouncyCastle unterstützten Verschlüsselungsmethode verschlüsselt werden.
Private Schlüssel im ssh.com-Format können mit einer der folgenden Verschlüsselungsmethoden verschlüsselt werden:
3des-cbc
Private Schlüssel im OpenSSH-Schlüsselformat können mit einer der folgenden Verschlüsselungsmethoden verschlüsselt werden:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
SSH.NET unterstützt die folgenden Hostschlüsselalgorithmen:
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh-dss
SSH.NET unterstützt die folgenden MAC-Algorithmen:
hmac-sha2-256
hmac-sha2-512
hmac-sha1
SSH.NET unterstützt die folgenden Komprimierungsalgorithmen:
keine (Standard)
SSH.NET unterstützt die folgenden Zielframeworks:
.NETFramework 4.6.2 (und höher)
.NET Standard 2.0 und 2.1
.NET 6 (und höher)
Für die Erstellung der Bibliothek gelten außer einem aktuellen .NET SDK keine besonderen Anforderungen. Siehe auch CONTRIBUTING.md.
Setzen Sie oder Ihr Unternehmen in Ihren Projekten auf SSH.NET ? Wenn Sie uns ermutigen möchten, weiterzumachen und uns zeigen möchten, dass Sie unsere Arbeit schätzen, denken Sie bitte darüber nach, Sponsor über GitHub Sponsors zu werden.