SSH.NET
SSH.NET عبارة عن مكتبة Secure Shell (SSH-2) لـ .NET، مُحسّنة للتوازي.
الميزات الرئيسية
- تنفيذ أمر SSH باستخدام الطرق المتزامنة وغير المتزامنة
- وظيفة SFTP لكل من العمليات المتزامنة وغير المتزامنة
- وظيفة SCP
- إعادة توجيه المنفذ البعيد والديناميكي والمحلي
- تنفيذ القشرة/المحطة التفاعلية
- المصادقة عبر المفتاح العام وكلمة المرور والطرق التفاعلية للوحة المفاتيح، بما في ذلك العوامل المتعددة
- الاتصال عبر SOCKS4 أو SOCKS5 أو وكيل HTTP
كيفية الاستخدام
قم بتشغيل أمر
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"
}
تحميل الملفات وإدراجها باستخدام 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 } " ) ;
}
}
الأنواع الرئيسية
الأنواع الرئيسية التي توفرها هذه المكتبة هي:
- Renci.SshNet.SshClient
- Renci.SshNet.SftpClient
- Renci.SshNet.ScpClient
- Renci.SshNet.PrivateKeyFile
- Renci.SshNet.SshCommand
- Renci.SshNet.ShellStream
وثائق إضافية
- مزيد من الأمثلة
- متصفح واجهة برمجة التطبيقات
طرق التشفير
يدعم SSH.NET طرق التشفير التالية:
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-جي سم @openssh.com
- aes256-جي سم @openssh.com
- chacha20-poly1305 @openssh.com
- aes128-سي بي سي
- aes192-سي بي سي
- aes256-سي بي سي
- 3des-سي بي سي
طرق تبادل المفاتيح
يدعم SSH.NET طرق تبادل المفاتيح التالية:
- منحنى25519-sha256
- منحنى25519-sha256 @libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
- ديفي هيلمان-مجموعة-تبادل-sha256
- ديفي هيلمان-مجموعة-تبادل-sha1
- ديفي-هيلمان-group16-sha512
- ديفي هيلمان-group14-sha256
- ديفي هيلمان-group14-sha1
- ديفي-هيلمان-group1-sha1
مصادقة المفتاح العام
يدعم SSH.NET تنسيقات المفاتيح الخاصة التالية:
- آر إس إيه في
- تنسيق PEM التقليدي لـ OpenSSL ("BEGIN RSA PRIVATE KEY")
- تنسيق OpenSSL PKCS#8 PEM ("بدء المفتاح الخاص"، "بدء المفتاح الخاص المشفر")
- تنسيق ssh.com ("بدء استخدام المفتاح الخاص المشفر SSH2")
- تنسيق مفتاح OpenSSH ("بدء فتح المفتاح الخاص")
- بدل الإقامة اليومي في
- تنسيق PEM التقليدي لـ OpenSSL ("BEGIN DSA PRIVATE KEY")
- تنسيق OpenSSL PKCS#8 PEM ("بدء المفتاح الخاص"، "بدء المفتاح الخاص المشفر")
- تنسيق ssh.com ("بدء استخدام المفتاح الخاص المشفر SSH2")
- ECDSA 256/384/521 بوصة
- تنسيق PEM التقليدي لـ OpenSSL ("BEGIN EC PRIVATE KEY")
- تنسيق OpenSSL PKCS#8 PEM ("بدء المفتاح الخاص"، "بدء المفتاح الخاص المشفر")
- تنسيق مفتاح OpenSSH ("بدء فتح المفتاح الخاص")
- ED25519 في
- تنسيق OpenSSL PKCS#8 PEM ("بدء المفتاح الخاص"، "بدء المفتاح الخاص المشفر")
- تنسيق مفتاح OpenSSH ("بدء فتح المفتاح الخاص")
يمكن تشفير المفاتيح الخاصة بتنسيق PEM التقليدي لـ OpenSSL باستخدام إحدى طرق التشفير التالية:
- DES-EDE3-CBC
- DES-EDE3-CFB
- ديس-سي بي سي
- ايه اي اس-128-سي بي سي
- ايه اي اس-192-سي بي سي
- ايه اي اس-256-سي بي سي
يمكن تشفير المفاتيح الخاصة بتنسيق OpenSSL PKCS#8 PEM باستخدام أي طريقة تشفير يدعمها BouncyCastle.
يمكن تشفير المفاتيح الخاصة بتنسيق ssh.com باستخدام إحدى طرق التشفير التالية:
يمكن تشفير المفاتيح الخاصة بتنسيق مفتاح OpenSSH باستخدام إحدى طرق التشفير التالية:
- 3des-سي بي سي
- aes128-سي بي سي
- aes192-سي بي سي
- aes256-سي بي سي
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-جي سم @openssh.com
- aes256-جي سم @openssh.com
- chacha20-poly1305 @openssh.com
خوارزميات مفتاح المضيف
يدعم SSH.NET خوارزميات مفتاح المضيف التالية:
- سش-ed25519
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
- آر إس إيه-sha2-512
- آر إس إيه-sha2-256
- ssh-rsa
- SSH-DSS
رمز التحقق من الرسالة
يدعم SSH.NET خوارزميات MAC التالية:
- هماك-sha2-256
- هماك-sha2-512
- هماك-sha1
- هماك-sha2-256-etm @openssh.com
- هماك-sha2-512-etm @openssh.com
- هماك-sha1-etm @openssh.com
ضغط
يدعم SSH.NET خوارزميات الضغط التالية:
- لا شيء (افتراضي)
- زليب @openssh.com
دعم الإطار
يدعم SSH.NET الأطر المستهدفة التالية:
- .NETFramework 4.6.2 (والإصدارات الأحدث)
- .NET القياسي 2.0 و2.1
- .NET 6 (والإصدارات الأحدث)
بناء المكتبة
لا توجد متطلبات خاصة للإنشاء في المكتبة، بخلاف .NET SDK المحدث. انظر أيضًا CONTRIBUTING.md.
دعم SSH.NET
هل تعتمد أنت أو شركتك على SSH.NET في مشاريعك؟ إذا كنت تريد تشجيعنا على الاستمرار وإظهار أنك تقدر عملنا، فيرجى التفكير في أن تصبح راعيًا من خلال رعاة GitHub.