用于SSH和Telnet的C#库

我正在寻找一个C#库,它可以在同一个界面下访问SSH和Telnet。 什么是一个好的选择?

我推荐使用Granados进行SSH堆栈。 它已被用于许多产品中。

我推荐这个用于telnet堆栈的代码项目页面 。

您还可以下载Poderosa终端模拟器 。 它使用Granados作为SSH堆栈,它有自己的telnet堆栈实现。

Poderosa非常可插拔。 它在网络堆栈上提供了一个很好的抽象层。 如果您没有时间编写自己的统一界面,那么您应该查看他们的工作。 它可以在相同的界面下提供对SSH和Telnet的访问,就像您想要的那样。 不幸的是,它是由日本工程师编写的。 所有内联注释都是用日语写的。 您可能需要一些时间来理解代码。

您可能还想查看终端仿真库。 由于您要处理从远程终端返回的数据,因此大多数终端返回设备控制命令,字体颜色/样式或光标移动命令的转义字符序列 。

您可能不会注意到即使在简单的命令“ls -al”中,返回的内容也可能涉及一些转义字符序列。 这些转义序列是使目录名称和文件名以不同的颜色显示。

同样,对于终端仿真,我能找到的最好的C#库是Poderosa。 如果您不必使用C#库, PuTTY具有最佳的终端仿真支持。 它可以识别我到目前为止看到的几乎所有转义字符序列。

虽然我强烈建议你看看Poderosa和Granados,但请注意这些项目似乎不再活跃。 好吧..即便如此,它仍然是我见过的最好的。

使用C#进行SSH工作确实非常棘手,大多数实现都是错误或太慢。 当我们制作SmarTTY时 ,我们经常与SharpSSH和SSH.Net进行斗争,然后最终决定在libssh2周围制作我们自己的C#包装器。

虽然SmarTTY不是开源的,但如果你想在你的项目中使用它的SSH库,请随时给我发电子邮件。 如果对这样的库有很大需求,我们可能会将其作为单独的产品发布。

此链接可能会帮助您C#Telnet库

  • 简约的Telnet
  • telnetcsharp.codeplex.com
  • xpresslearn
  • thoughtproject.com
  • dotnettelnet

我找不到任何为telnet和ssh提供相同(甚至类似的API)的东西, sharpSSH是一个很好地抽象SSH的小库。