【发布时间】:2011-12-15 16:06:39
【问题描述】:
我正在尝试从我的 C# 应用程序在远程主机上运行 UNIX 命令。
我在互联网上看到过各种帖子,包括使用 SmartSsh 等各种库执行此操作的其他许多帖子。还有一些使用命令行命令。
我不想使用任何第三方库。
因此,我尝试使用 TcpClient 类,并在 MSDN 上显示此处的示例。我将主机名传递为:user@servername 和端口 22。当我运行此代码时,它会引发异常
SocketException (0x80004005): No such host is known
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
是否因为我的服务器/主机需要用户密码,如果是,我该如何提供?
【问题讨论】:
-
我尝试搜索这样的现有问题,但无法找到正确的问题。如果这是重复的,请将我重定向到正确的位置。谢谢。
-
套接字只是一个连接,把它看作是通过电话呼叫一个人。套接字确保您与其他人有联系,但您仍然需要一种语言(协议)来进行通信。在电话里,那是一种共同语言。当您想要执行 unix 命令时,您还需要一种您和目标都理解的语言。其中一种协议是 SSH,端口 22。SSH 还定义了身份验证,因此您需要实现 SSH 协议或更好的协议,使用第 3 方库为您执行此操作
-
@Polity :感谢您用最简单的语言很好地解释了我所缺少的内容。
-
@Polity 我想将您的评论标记为对我的问题的回答。
-
谢谢 :) 我发表了我的评论作为答案