SSH.NET
SSH.NET ist eine Secure Shell (SSH-2)-Bibliothek für .NET, optimiert für Parallelität.
Hauptmerkmale
- 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
Verwendung
Führen Sie einen Befehl aus
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"
}
Laden Sie Dateien über SFTP hoch und listen Sie sie auf
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 } " ) ;
}
}
Haupttypen
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
Zusätzliche Dokumentation
- Weitere Beispiele
- API-Browser
Verschlüsselungsmethoden
SSH.NET unterstützt die folgenden Verschlüsselungsmethoden:
- 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
Wichtige Austauschmethoden
SSH.NET unterstützt die folgenden Schlüsselaustauschmethoden:
- Kurve25519-sha256
- Kurve25519-sha256 @libssh.org
- 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
Authentifizierung mit öffentlichem Schlüssel
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:
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
- aes128-gcm @openssh.com
- aes256-gcm @openssh.com
- chacha20-poly1305 @openssh.com
Host-Schlüsselalgorithmen
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
Nachrichtenauthentifizierungscode
SSH.NET unterstützt die folgenden MAC-Algorithmen:
- 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
Kompression
SSH.NET unterstützt die folgenden Komprimierungsalgorithmen:
- keine (Standard)
- zlib @openssh.com
Framework-Unterstützung
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)
Aufbau der Bibliothek
Für die Erstellung der Bibliothek gelten außer einem aktuellen .NET SDK keine besonderen Anforderungen. Siehe auch CONTRIBUTING.md.
Unterstützt SSH.NET
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.