SSH.NET: .NET 平台上的安全 Shell 库

打印 上一主题 下一主题

主题 1896|帖子 1896|积分 5688

简介

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 及以上版本
安装与使用

  1. Install-Package SSH.NET
复制代码
使用

实行命令

怎样使用 SshClient 类实行 SSH 命令:
  1. using Renci.SshNet;
  2. using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
  3. {
  4.     client.Connect();
  5.     using (var cmd = client.RunCommand("echo 'Hello World!'"))
  6.     {
  7.         Console.WriteLine(cmd.Result); // 输出 "Hello World!\n"
  8.     }
  9. }
复制代码
使用 SFTP 上传和列出文件

SftpClient 类上传文件并列出目录内容:
  1. using Renci.SshNet;
  2. using System.IO;
  3. using (var client = new SftpClient("sftp.foo.com", "guest", "pwd"))
  4. {
  5.     client.Connect();
  6.     using (var fs = File.OpenRead(@"C:\tmp\test-file.txt"))
  7.     {
  8.         client.UploadFile(fs, "/home/guest/test-file.txt");
  9.     }
  10.     foreach (var file in client.ListDirectory("/home/guest/"))
  11.     {
  12.         Console.WriteLine($"{file.FullName} {file.LastWriteTime}");
  13.     }
  14. }
复制代码
主要类

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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

络腮胡菲菲

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表