【问题标题】:SSH.NET - Message type 80 is not validSSH.NET - 消息类型 80 无效
【发布时间】:2016-08-21 21:40:02
【问题描述】:

我有以下代码尝试连接到使用 OpenSSH 构建的 SFTP 服务器(该服务器正常工作,因为我已经能够通过 WinSCP 客户端成功连接到该 FTP):

ConnectionInfo ConnNfo = new ConnectionInfo("127.0.0.1", 22, "usertest",
    new AuthenticationMethod[]{

        // Pasword based Authentication
        new PasswordAuthenticationMethod("usertest","usertest"),
    }
);

// Upload A File
using (var sftp = new SftpClient(ConnNfo))
{
    sftp.Connect();
    sftp.ChangeDirectory(@"/C:/IISFTP/");
    using (var uplfileStream = File.OpenRead(uploadfn))
    {
        sftp.UploadFile(uplfileStream, uploadfn, true);
    }
    sftp.Disconnect();
}

调用sftp.Connect() 行时,会引发以下异常:

消息类型 80 无效

为什么会这样?如何使用 SSH.NET 连接到我的 SFTP 服务器?

谢谢

【问题讨论】:

  • 您的代码适用于我刚刚尝试过的 solaris 盒子 - 有一条消息说另一个 ssh 库有问题的 openssh.. 但它是一个较旧的..
  • 什么版本的 OpenSSH 和什么版本的 SSH.NET?
  • @MartinPrikryl SSH.Net 版本:尝试了最新的源代码和 Nuget 包(在撰写本文时为 v2013.4.7)。 OpenSSH(我做了一个 ssh -v localhost):OpenSSH_7.1p1 Microsoft_Win32_port_with_VS,OpenSSL 1.0.2d 2015 年 7 月 9 日
  • 我今天发布了 SSH.NET 的 beta 版 2016.0.0-beta1,修复了这个问题:>* 成功验证后立即收到 SSH_MSG_GLOBAL_REQUEST 时的竞争条件(GitHub 问题 #8)预发布版 NuGet 包可用here

标签: c# ssh sftp openssh ssh.net


【解决方案1】:

消息 80 代表SSH_MSG_GLOBAL_REQUEST

现代版本的 OpenSSH 服务器将此通用消息用于各种 proprietary extensions of the SSH protocol

大多数客户端将/应该默默地忽略无法识别的消息。 SSH.NET 也确实忽略了SSH_MSG_GLOBAL_REQUEST,但在身份验证完成之前它不会收到消息。

不幸的是,OpenSSH 似乎在身份验证之前就发送了其中的一些(可能是hostkeys-prove-00@openssh.com)。

问题已在SSH.NET 2016.0.0-beta1 中修复。请参阅Issue #8Commit a1f46d4


在旧版本中,转到Session.cs 并在Session.Connect() 方法中将下面的行向上移动,位于身份验证代码上方:

RegisterMessage("SSH_MSG_GLOBAL_REQUEST");

我会把它放在这条线的下面:

RegisterMessage("SSH_MSG_USERAUTH_BANNER");

【讨论】:

  • 太棒了,根据您对源代码更改的建议,我终于可以绕过该错误并进行连接。现在我可以继续玩我认为的图书馆了。谢谢!
  • 谢谢。有谁知道这个项目是否仍在积极进行中?也许是时候把它移到 Github 上了?
  • @antmeehan 实际上已经被移动了:github.com/sshnet/SSH.NET。我已将此问题提交给项目:github.com/sshnet/SSH.NET/issues/8
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 2019-11-03
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2018-04-12
相关资源
最近更新 更多