SSH.NET
SSH.NET adalah pustaka Secure Shell (SSH-2) untuk .NET, dioptimalkan untuk paralelisme.
Fitur Utama
- Eksekusi perintah SSH menggunakan metode sinkron dan asinkron
- Fungsionalitas SFTP untuk operasi sinkron dan asinkron
- fungsionalitas SCP
- Penerusan port jarak jauh, dinamis dan lokal
- Implementasi shell/terminal interaktif
- Otentikasi melalui metode kunci publik, kata sandi, dan keyboard interaktif, termasuk multi-faktor
- Koneksi melalui SOCKS4, SOCKS5 atau proksi HTTP
Cara Menggunakan
Jalankan perintah
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"
}
Unggah dan daftarkan file menggunakan 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 } " ) ;
}
}
Tipe Utama
Tipe utama yang disediakan oleh perpustakaan ini adalah:
- Renci.SshNet.SshClient
- Renci.SshNet.SftpClient
- Renci.SshNet.ScpClient
- Renci.SshNet.PrivateKeyFile
- Renci.SshNet.SshCommand
- Renci.SshNet.ShellStream
Dokumentasi Tambahan
- Contoh lebih lanjut
- peramban API
Metode Enkripsi
SSH.NET mendukung metode enkripsi berikut:
- 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
Metode Pertukaran Kunci
SSH.NET mendukung metode pertukaran kunci berikut:
- kurva25519-sha256
- kurva25519-sha256 @libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
- diffie-hellman-grup-pertukaran-sha256
- diffie-hellman-group-exchange-sha1
- diffie-hellman-group16-sha512
- diffie-hellman-group14-sha256
- diffie-hellman-group14-sha1
- diffie-hellman-group1-sha1
Otentikasi Kunci Publik
SSH.NET mendukung format kunci pribadi berikut:
- RSA di
- Format PEM tradisional OpenSSL ("BEGIN RSA PRIVATE KEY")
- Format OpenSSL PKCS#8 PEM ("MULAI KUNCI PRIBADI", "MULAI KUNCI PRIBADI TERENKRIPSI")
- format ssh.com ("MULAI KUNCI PRIBADI TERENKRIPSI SSH2")
- Format kunci OpenSSH ("MULAI KUNCI PRIBADI OPENSSH")
- DSA masuk
- Format PEM tradisional OpenSSL ("MULAI KUNCI PRIBADI DSA")
- Format OpenSSL PKCS#8 PEM ("MULAI KUNCI PRIBADI", "MULAI KUNCI PRIBADI TERENKRIPSI")
- format ssh.com ("MULAI KUNCI PRIBADI TERENKRIPSI SSH2")
- ECDSA 256/384/521 inci
- Format PEM tradisional OpenSSL ("BEGIN EC PRIVATE KEY")
- Format OpenSSL PKCS#8 PEM ("MULAI KUNCI PRIBADI", "MULAI KUNCI PRIBADI TERENKRIPSI")
- Format kunci OpenSSH ("MULAI KUNCI PRIBADI OPENSSH")
- ED25519 masuk
- Format OpenSSL PKCS#8 PEM ("MULAI KUNCI PRIBADI", "MULAI KUNCI PRIBADI TERENKRIPSI")
- Format kunci OpenSSH ("MULAI KUNCI PRIBADI OPENSSH")
Kunci pribadi dalam format PEM tradisional OpenSSL dapat dienkripsi menggunakan salah satu metode sandi berikut:
- DES-EDE3-CBC
- DES-EDE3-CFB
- DES-CBC
- AES-128-CBC
- AES-192-CBC
- AES-256-CBC
Kunci pribadi dalam format OpenSSL PKCS#8 PEM dapat dienkripsi menggunakan metode sandi apa pun yang didukung BouncyCastle.
Kunci pribadi dalam format ssh.com dapat dienkripsi menggunakan salah satu metode sandi berikut:
Kunci pribadi dalam format kunci OpenSSH dapat dienkripsi menggunakan salah satu metode sandi berikut:
- 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
Algoritma Kunci Host
SSH.NET mendukung algoritma kunci host berikut:
- ssh-ed25519
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
- rsa-sha2-512
- rsa-sha2-256
- ssh-rsa
- ssh-dss
Kode Otentikasi Pesan
SSH.NET mendukung algoritma MAC berikut:
- 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
Kompresi
SSH.NET mendukung algoritma kompresi berikut:
- tidak ada (standar)
- zlib @openssh.com
Dukungan Kerangka
SSH.NET mendukung kerangka target berikut:
- .NETFramework 4.6.2 (dan lebih tinggi)
- .NET Standar 2.0 dan 2.1
- .NET 6 (dan lebih tinggi)
Membangun perpustakaan
Perpustakaan tidak memiliki persyaratan khusus untuk dibangun, selain .NET SDK terbaru. Lihat juga KONTRIBUSI.md.
Mendukung SSH.NET
Apakah Anda atau perusahaan Anda mengandalkan SSH.NET dalam proyek Anda? Jika Anda ingin mendorong kami untuk terus maju dan menunjukkan kepada kami bahwa Anda menghargai pekerjaan kami, silakan pertimbangkan untuk menjadi sponsor melalui GitHub Sponsors.