【问题标题】:In C# how to run unix command on remote SSH using TcpClient在 C# 中如何使用 TcpClient 在远程 SSH 上运行 unix 命令
【发布时间】: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 我想将您的评论标记为对我的问题的回答。
  • 谢谢 :) 我发表了我的评论作为答案

标签: c# sockets ssh tcpclient


【解决方案1】:

套接字只是关于连接,将其视为通过电话呼叫一个人。套接字确保您与其他人有联系,但您仍然需要一种语言(协议)来进行通信。在电话里,那是一种共同语言。当您想要执行 unix 命令时,您还需要一种您和目标都理解的语言。其中一种协议是 SSH,端口 22。SSH 还定义了身份验证,因此您需要实现 SSH 协议或更好的协议,使用第 3 方库为您完成此操作

【讨论】:

猜你喜欢
  • 2010-11-03
  • 2015-01-24
  • 1970-01-01
  • 2011-01-31
  • 2012-11-20
  • 2018-03-03
  • 2014-04-26
  • 1970-01-01
  • 2021-02-10
相关资源
最近更新 更多