【问题标题】:SSH to server, then telnet to deviceSSH 到服务器,然后 telnet 到设备
【发布时间】:2012-08-30 06:42:17
【问题描述】:

我需要 ssh 到 debian 服务器,然后从这个服务器 telnet 到其他 (cisco) 设备,运行一些命令并读取响应。

我已经开始编写 C# 应用程序以连接到 ssh 服务器(使用 SSH.NET library),但我应该如何继续从该服务器远程登录?

我应该编写可以远程登录到设备并远程执行该程序的 C 或 Perl 程序吗?没有像bash脚本这样更简单的方法吗?或者也许可以让我在 debian 服务器上执行 telnet 程序并远程控制它的异步 ssh 连接?

【问题讨论】:

  • 这类问题更适合programmers.stackexchange.com

标签: c# ssh telnet


【解决方案1】:

由于 SSH 允许 tunnelling,也许您可​​以启动 SSH 会话,为 telnet 部分创建一个隧道,然后您可以从同一个 C# 程序通过隧道向 Cisco 设备发出 telnet 命令。

如果您决定采用这种方法,this question about .Net Telnet libraries 可能会有用

【讨论】:

  • 隧道听起来不错,我使用的 SSH.NET 库有端口转发选项,我会尝试一下,但我还有一个问题,ssh 客户端是否告诉服务器侦听新端口并转发连接,或者这是由客户端以某种方式实现的(我不知道如何做到这一点)。所以隧道是协议的一部分,每个 ssh 服务器都应该支持?
  • @Buksy “ssh 客户端是否告诉服务器监听新端口并转发连接” - 我不知道它是如何工作的细节,但如果您担心您的 SSH 服务器可能不支持它,您可以使用 PuTTY 之类的东西以交互方式测试隧道,然后启动 telnet 客户端来测试隧道
  • 谢谢,它可以工作 :) ...我在 debian 服务器上 ssh 并运行此命令 ssh -N -g -L 10500:remoteHost:23 localhost(首先我必须使用 ssh-keygen 设置自动身份验证)。我能够使用此隧道远程登录到设备
  • @Buksy 有什么方法可以更详细地与我分享您的解决方案吗?我正在尝试做完全相同的事情(SSH 到服务器,然后 Telnet,然后发出命令)。但是我对此很陌生,并不完全理解所有概念。你有任何可以分享的示例代码(除了上面的命令)吗?
  • 抱歉回复晚了,如果你还有兴趣,我可以把我的解决方案上传到某个地方,不幸的是,它还没有完全完成,因为它被我的老板拒绝了。但它有效;)
猜你喜欢
  • 1970-01-01
  • 2019-05-30
  • 2018-12-03
  • 1970-01-01
  • 2018-12-25
  • 2019-05-18
  • 1970-01-01
  • 2010-12-14
  • 2019-10-16
相关资源
最近更新 更多