我正在尝试从我的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)
是因为我的服务器/主机希望为用户提供密码,如果是,那么我该如何提供呢?
答案 0 :(得分:2)
套接字只是一个连接,将其视为通过电话呼叫某人。套接字确保您与另一个人保持一致,但您仍需要一种语言(协议)进行通信。通过电话,这是一种通用语言。当您想要执行unix命令时,您还需要一种您和目标都能理解的语言。其中一个协议是SSH,端口22.SSH还定义了身份验证,因此您需要实现SSH协议或更好,使用第三方库为您执行此操作