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();using (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}");}}
ประเภทหลักที่ห้องสมุดนี้มีให้คือ:
Renci.SshNet.SshClient
Renci.SshNet.SftpClient
Renci.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Renci.SshNet.SshCommand
Renci.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
diffie-hellman-กลุ่ม-exchange-sha256
diffie-hellman-กลุ่มแลกเปลี่ยน-sha1
ดิฟฟี-เฮลล์แมน-group16-sha512
ดิฟฟี่เฮลล์แมนกรุ๊ป14-sha256
ดิฟฟี่เฮลล์แมนกรุ๊ป14-sha1
ดิฟฟี-เฮลแมน-group1-sha1
SSH.NET รองรับรูปแบบคีย์ส่วนตัวต่อไปนี้:
อาร์เอสเอ อิน
รูปแบบ PEM แบบดั้งเดิมของ OpenSSL ("BEGIN RSA PRIVATE KEY")
รูปแบบ OpenSSL PKCS#8 PEM ("เริ่มต้นคีย์ส่วนตัว", "เริ่มต้นคีย์ส่วนตัวที่เข้ารหัส")
รูปแบบ ssh.com ("เริ่มต้นคีย์ส่วนตัวที่เข้ารหัส SSH2")
รูปแบบคีย์ OpenSSH ("เริ่มต้นคีย์ส่วนตัว 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 ("เริ่มต้นคีย์ส่วนตัว OPENSSH")
ED25519 นิ้ว
รูปแบบ OpenSSL PKCS#8 PEM ("เริ่มต้นคีย์ส่วนตัว", "เริ่มต้นคีย์ส่วนตัวที่เข้ารหัส")
รูปแบบคีย์ OpenSSH ("เริ่มต้นคีย์ส่วนตัว OPENSSH")
คีย์ส่วนตัวในรูปแบบ 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 (และสูงกว่า)
ไลบรารีไม่มีข้อกำหนดพิเศษในการสร้าง นอกเหนือจาก .NET SDK ที่เป็นปัจจุบัน ดูเพิ่มเติมที่ CONTRIBUTING.md
คุณหรือบริษัทของคุณพึ่งพา SSH.NET ในโครงการของคุณหรือไม่? หากคุณต้องการสนับสนุนให้เราดำเนินต่อไปและแสดงให้เราเห็นว่าคุณชื่นชมงานของเรา โปรดพิจารณาเป็นผู้สนับสนุนผ่านผู้สนับสนุน GitHub