SSH.NET 是适用于 .NET 的 Secure Shell (SSH-2) 库,针对并行性进行了优化。
使用同步和异步方法执行 SSH 命令
用于同步和异步操作的 SFTP 功能
SCP功能
远程、动态和本地端口转发
交互式 shell/终端实现
通过公钥、密码和键盘交互方法(包括多因素)进行身份验证
通过 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”}
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 文件中client.ListDirectory("/home/guest/")){Console.WriteLine($"{file.FullName} {file.LastWriteTime}");}}
该库提供的主要类型有:
Renci.SshNet.SshClient
Renci.SshNet.SftpClient
Renci.SshNet.ScpClient
Renci.SshNet.PrivateKeyFile
Renci.SshNet.Ssh命令
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
迪菲-赫尔曼-组交换-sha256
迪菲-赫尔曼-组交换-sha1
迪菲-赫尔曼-group16-sha512
迪菲-赫尔曼-group14-sha256
迪菲-赫尔曼-group14-sha1
迪菲-赫尔曼-group1-sha1
SSH.NET支持以下私钥格式:
RSA 在
OpenSSL 传统 PEM 格式(“BEGIN RSA PRIVATE KEY”)
OpenSSL PKCS#8 PEM 格式(“开始私钥”、“开始加密私钥”)
ssh.com 格式(“开始 SSH2 加密私钥”)
OpenSSH 密钥格式(“开始 OPENSSH 私钥”)
DSA 中
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 密钥格式(“开始 OPENSSH 私钥”)
ED25519 在
OpenSSL PKCS#8 PEM 格式(“开始私钥”、“开始加密私钥”)
OpenSSH 密钥格式(“开始 OPENSSH 私钥”)
OpenSSL 传统 PEM 格式的私钥可以使用以下密码方法之一进行加密:
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 Sponsors 成为赞助商。