请注意,这必须位于 Windows 盒子上,因为我正在使用 C# 来访问有关 Windows 的信息
(我需要来自 Windows 盒子和 Linux 盒子的信息,另外我认为制作一个无需 GUI 运行并在没有用户干预的情况下从 Linux 盒子访问 Windows 的程序/脚本会更加困难,如果这不是真的,请告诉我,我很想让它在 *nix 上运行,仅访问在 Windows 上运行的 Windows 信息的部分)。
有一个很好的 c# api 可以从 Windows 获取此信息,在 *nix 上它足够简单,可以运行命令并根据我的需要解析输出。
关于从 C# 使用 ssh 似乎没有太多像样的建议,sharpSSH 和 Granados 似乎已经很多年没有更新了,它们像样吗?我应该担心安全问题吗?
(我检索的信息并不敏感,但如果 ssh 实现可能存在未修补的安全缺陷(如果它们多年未更新),我担心有人窃取我的凭据。
还有其他像样的 c# ssh 库吗?如果命令输出很简单,我应该只运行 plink/putty(为 plink 运行 Windows cmd shell 并捕获输出是否很困难(有没有办法在不弹出 shell 的情况下做到这一点)?
附:虽然商业图书馆看起来不错,但我更喜欢免费的东西(如成本和源免费,如果可能的话)。
示例代码
有几个用于 C# 的商业 SSH 客户端库。以下代码展示了如何连接到 *nix 盒子、运行命令并使用我们的读取响应雷贝克斯 SSH 外壳.
// create client, connect and log in
Ssh client = new Ssh();
client.Connect(hostname);
client.Login(username, password);
// run the 'uname' command to retrieve OS info
string systemName = client.RunCommand("uname -a");
// display the output
Console.WriteLine("OS info: {0}", systemName);
client.Disconnect();
对于高级场景(例如交互式命令),请参阅SSH 外壳教程.
参考文献和稳定性
您可能已经在使用 Rebex SSH 核心库而不自知。 Microsoft 在包括 Expression Web 和 Visual Studio 2010 在内的多种产品中使用 Rebex SFTP(使用此 SSH 库作为传输层)。Rebex SSH Shell “只是”其之上的另一层(最值得注意的附加功能是终端模拟器)。
您可以从以下位置下载试用版http://www.rebex.net/ssh-shell.net/download.aspx。支持论坛使用与该网站非常相似的引擎并运行在http://forum.rebex.net/
免责声明:我参与了 Rebex SSH 的开发
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)