【问题标题】:OpenSSH failuresOpenSSH 失败
【发布时间】:2012-11-24 05:20:50
【问题描述】:

我在一个项目中使用OpenSSH version13。 然而,当我们尝试使用 ssh 连接到产品时,nchan.c 时不时会返回一个错误,我们会在产品中得到以下打印结果,然后连接被关闭。

channel 0: rcvd eof
output open -> drain
channel 0: obuf empty
channel 0: close_write
channel 0: output drain -> closed

所有这些输出都来自nchan.c。至少对我来说,仅仅阅读代码并尝试查看可能发生的事情似乎是不可能的!有谁知道为什么OpenSSH 可能会打印此错误消息并关闭连接? 我希望有人非常熟悉 OpenSSH 实现,为我指明正确的方向!

我使用python 连接到产品,更具体地说是python pexpect module。我建立了一个 SSH 连接,使用用户名、密码登录,然后执行一些命令并检查输出。这在大多数情况下都可以正常工作,但如前所述,连接时不时地失败。上面提供的输出可以在产品中看到,并且从pexpect 抛出异常,它从产品接收到EOF(文件结束)(意味着无法建立连接)。这几乎是我得到的所有打印输出。我希望有人能理解为什么 OpenSSH 不想建立连接!

【问题讨论】:

  • “产品”是否产生了这些信息?您如何尝试连接到它?如果使用ssh,请在发生错误时提供ssh -v 的打印输出。
  • 您向我们展示的是调试消息。是否记录了任何其他错误消息?如果是:请按出现顺序将它们添加到调试消息中。
  • @soulseekah,请参阅上面修改后的问题
  • 您使用的是来自pexpectpxssh 吗?你能从运行中获得更多的详细信息吗?您需要提供更多信息,因为无法猜出问题所在。
  • @soulseekah,我使用 pexpect spawn 方法来设置 SSH 连接。我无法获得更多日志,因为我们直接使用 openssh,而这些都是我每次无法建立连接时得到的所有打印输出。

标签: c ssh openssh netbsd


【解决方案1】:

当 SSH 调试 (-v) 无法提供足够的输出时,我总是在调试模式下启动 sshd 并直接从 sshd 控制台观看。它往往会就根本原因给出更多反馈。

【讨论】:

    【解决方案2】:

    如果您确实使用的是您链接到的 OpenSSH 版本,那么您使用的是过时的版本。

    可以在此处找到最新版本的 OpenSSH nchan.c 文件:http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/nchan.c?rev=1.63;content-type=text%2Fx-cvsweb-markup,您可以注意到版本的差异:1.63(日期为 2010/01/26)与 1.32(日期为 2001/10/10)。

    请确保您升级到最新版本的 OpenSSH - 我怀疑您偶然发现了一个很久以前就已更正的错误。

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 2016-09-19
      • 2018-04-03
      • 2014-08-18
      • 2023-03-03
      • 2020-04-22
      • 2013-09-07
      • 2018-07-14
      • 2017-05-05
      相关资源
      最近更新 更多