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

简介

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 及以上版本

安装与使用

shell 复制代码
Install-Package SSH.NET

使用

执行命令

如何使用 SshClient 类执行 SSH 命令:

csharp 复制代码
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 类上传文件并列出目录内容:

csharp 复制代码
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。

相关推荐
●VON2 小时前
鸿蒙 PC Markdown 编辑器自由窗口:覆盖侧栏与响应式预算
安全·华为·编辑器·harmonyos·鸿蒙
●VON4 小时前
鸿蒙 PC Markdown 编辑器有界版本历史:沙箱快照、完整性校验与安全恢复
安全·华为·编辑器·harmonyos·鸿蒙
7177774 小时前
Gitee DevOps 国产化研运能力解析:安全与研发效能双维度升级
安全·gitee·devops
treesforest5 小时前
公开IP属地后我们应该如何保护自身网络安全?
tcp/ip·安全·web安全·ip属地·查ip归属地
Sagittarius_A*5 小时前
Web 安全之 Git 泄露:原理剖析 + CTFHub Log/Stash/Index 全题型解法
git·安全·web安全
Coremail邮件安全6 小时前
2026邮件安全态势观察:AI正在把漏洞利用窗口从“天”压缩到“分钟”
人工智能·安全
西安景驰电子7 小时前
PTP IEEE1588 时钟服务器详解
运维·服务器·网络·数据库·windows·安全
吳所畏惧17 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
九硕智慧建筑一体化厂家18 小时前
直流智能照明|一站式低碳照明解决方案,安全、节能、降本、全场景适配
安全
小程故事多_801 天前
算力工厂与安全沙箱,企业AI规模化落地的两条核心生命线
人工智能·安全