在C#中如何使用TcpClient在远程SSH上运行unix命令

时间:2011-12-15 07:05:05

标签: c# sockets ssh tcpclient

我正在尝试从我的C#应用​​程序在远程主机上运行UNIX命令。

我已经看到各种各样的帖子,包括SO,使用各种库,如SmartSsh,以及其他许多人。还有一些人使用命令行命令。

我不想使用任何第三方库。

因此我尝试使用TcpClient类,其示例显示在MSDN上。我传递的主机名为: user @ servername ,端口 22 。当我运行此代码时,它会产生异常

SocketException (0x80004005): No such host is known
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) 

是因为我的服务器/主机希望为用户提供密码,如果是,那么我该如何提供呢?

1 个答案:

答案 0 :(得分:2)

套接字只是一个连接,将其视为通过电话呼叫某人。套接字确保您与另一个人保持一致,但您仍需要一种语言(协议)进行通信。通过电话,这是一种通用语言。当您想要执行unix命令时,您还需要一种您和目标都能理解的语言。其中一个协议是SSH,端口22.SSH还定义了身份验证,因此您需要实现SSH协议或更好,使用第三方库为您执行此操作