SSH.NET — это библиотека Secure Shell (SSH-2) для .NET, оптимизированная для параллелизма.
Выполнение команды SSH как синхронными, так и асинхронными методами.
Функциональность SFTP как для синхронных, так и для асинхронных операций.
Функциональность SCP
Удаленная, динамическая и локальная переадресация портов
Интерактивная реализация оболочки/терминала
Аутентификация с помощью открытого ключа, пароля и интерактивных методов с помощью клавиатуры, включая многофакторную
Подключение через SOCKS4, SOCKS5 или HTTP-прокси.
используя (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); // "Привет, мир!n"}
используя (var client = new SftpClient("sftp.foo.com", "guest", "pwd")){client.Connect(); используя (FileStream fs = File.OpenRead(@"C:tmptest-file.txt) ")){client.UploadFile(fs, "/home/guest/test-file.txt");}foreach (файл ISftpFile в client.ListDirectory("/home/guest/")){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
Основные типы, предоставляемые этой библиотекой:
Ренци.SshNet.SshClient
Ренци.SshNet.SftpClient
Ренци.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Ренци.SshNet.SshCommand
Ренци.SshNet.ShellStream
Дальнейшие примеры
API-браузер
SSH.NET поддерживает следующие методы шифрования:
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
SSH.NET поддерживает следующие методы обмена ключами:
кривая25519-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
Диффи-Хеллман-группа-обмен-sha256
Диффи-Хеллман-группа-обмен-sha1
Диффи-Хеллман-группа16-sha512
Диффи-Хеллман-группа14-sha256
Диффи-Хеллман-группа14-sha1
Диффи-Хеллман-группа1-sha1
SSH.NET поддерживает следующие форматы закрытых ключей:
RSA в
Традиционный формат OpenSSL PEM («BEGIN RSA PRIVATE KEY»)
Формат OpenSSL PKCS#8 PEM («НАЧАТЬ ЧАСТНЫЙ КЛЮЧ», «НАЧАТЬ ЗАШИФРОВАННЫЙ ЧАСТНЫЙ КЛЮЧ»)
Формат ssh.com («НАЧАТЬ ЗАШИФРОВАННЫЙ ЗАКРЫТЫЙ КЛЮЧ SSH2»)
Формат ключа OpenSSH («BEGIN OPENSSH PRIVATE KEY»)
ДСА в
Традиционный формат OpenSSL PEM («BEGIN DSA PRIVATE KEY»)
Формат OpenSSL PKCS#8 PEM («НАЧАТЬ ЧАСТНЫЙ КЛЮЧ», «НАЧАТЬ ЗАШИФРОВАННЫЙ ЧАСТНЫЙ КЛЮЧ»)
Формат ssh.com («НАЧАТЬ ЗАШИФРОВАННЫЙ ЗАКРЫТЫЙ КЛЮЧ SSH2»)
ECDSA 256/384/521 в
Традиционный формат OpenSSL PEM («BEGIN EC PRIVATE KEY»)
Формат OpenSSL PKCS#8 PEM («НАЧАТЬ ЧАСТНЫЙ КЛЮЧ», «НАЧАТЬ ЗАШИФРОВАННЫЙ ЧАСТНЫЙ КЛЮЧ»)
Формат ключа OpenSSH («BEGIN OPENSSH PRIVATE KEY»)
ED25519 в
Формат OpenSSL PKCS#8 PEM («НАЧАТЬ ЧАСТНЫЙ КЛЮЧ», «НАЧАТЬ ЗАШИФРОВАННЫЙ ЧАСТНЫЙ КЛЮЧ»)
Формат ключа OpenSSH («BEGIN OPENSSH PRIVATE KEY»)
Закрытые ключи в традиционном формате PEM OpenSSL можно зашифровать с помощью одного из следующих методов шифрования:
DES-EDE3-CBC
DES-EDE3-CFB
DES-CBC
AES-128-CBC
AES-192-CBC
AES-256-CBC
Закрытые ключи в формате OpenSSL PKCS#8 PEM можно зашифровать с использованием любого метода шифрования, который поддерживает BouncyCastle.
Закрытые ключи в формате ssh.com можно зашифровать одним из следующих методов шифрования:
3des-cbc
Закрытые ключи в формате ключа OpenSSH можно зашифровать с помощью одного из следующих методов шифрования:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
SSH.NET поддерживает следующие алгоритмы ключей хоста:
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh-dss
SSH.NET поддерживает следующие алгоритмы MAC:
hmac-sha2-256
hmac-sha2-512
hmac-sha1
SSH.NET поддерживает следующие алгоритмы сжатия:
нет (по умолчанию)
SSH.NET поддерживает следующие целевые платформы:
.NETFramework 4.6.2 (и выше)
.NET Стандарт 2.0 и 2.1
.NET 6 (и выше)
Для сборки библиотеки не требуется никаких особых требований, кроме актуального пакета SDK для .NET. См. также CONTRIBUTING.md.
Используете ли вы или ваша компания SSH.NET в своих проектах? Если вы хотите побудить нас продолжать работу и показать, что вы цените нашу работу, рассмотрите возможность стать спонсором через GitHub Sponsors.