简介
SSH.NET 是一个针对 .NET 平台优化的 Secure Shell (SSH-2) 库,支持并行操作。它提供了丰富的功能,包罗实行 SSH 命令、SFTP 和 SCP 文件传输、端口转发、交互式终端等功能,并支持多种认证方式和加密方法。
主要特性
- 命令实行:支持同步和异步方式实行 SSH 命令。
- SFTP 功能:支持同步和异步方式的文件上传和下载。
- SCP 功能:支持文件传输协议(SCP)。
- 端口转发:支持远程、动态和本地端口转发。
- 交互式终端:提供交互式 Shell/Terminal 实现。
- 认证方式:支持公钥、密码和键盘交互认证,包罗多因素认证。
- 署理毗连:支持通过 SOCKS4、SOCKS5 或 HTTP 署理进行毗连。
支持以下目的框架:
- .NET Framework 4.6.2 及以上版本
- .NET Standard 2.0 和 2.1
- .NET 6 及以上版本
安装与使用
使用
实行命令
怎样使用 SshClient 类实行 SSH 命令:
- using Renci.SshNet;
- using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
- {
- client.Connect();
- using (var cmd = client.RunCommand("echo 'Hello World!'"))
- {
- Console.WriteLine(cmd.Result); // 输出 "Hello World!\n"
- }
- }
复制代码 使用 SFTP 上传和列出文件
SftpClient 类上传文件并列出目录内容:
- using Renci.SshNet;
- using System.IO;
- using (var client = new SftpClient("sftp.foo.com", "guest", "pwd"))
- {
- client.Connect();
- using (var fs = File.OpenRead(@"C:\tmp\test-file.txt"))
- {
- client.UploadFile(fs, "/home/guest/test-file.txt");
- }
- foreach (var file in client.ListDirectory("/home/guest/"))
- {
- Console.WriteLine($"{file.FullName} {file.LastWriteTime}");
- }
- }
复制代码 主要类
SSH.NET 提供了以下主要类:
- Renci.SshNet.SshClient:用于实行 SSH 命令。
- Renci.SshNet.SftpClient:用于 SFTP 操作。
- Renci.SshNet.ScpClient:用于 SCP 操作。
- Renci.SshNet.PrivateKeyFile:用于处理私钥文件。
- Renci.SshNet.SshCommand:用于实行 SSH 命令。
- Renci.SshNet.ShellStream:用于实现交互式 Shell/Terminal。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |