如何解决 SSH.NET 中的“数据包长度错误”错误

本文关键字:错误 数据包 中的 NET 何解决 解决 SSH | 更新日期: 2023-09-27 18:36:11

我正在尝试使用 SSH.NET 通过SFTP上传文件。 SFTPClient.Connect()抛出一个 SshConnectionException,并显示消息"错误的数据包长度1302334341"。 这是我的代码:

static void Main()
{
try
{
 SftpClient sftp = new SftpClient(server, 22, userID, password);
 sftp.Connect();
}
catch(Exception e)
{
 Console.WriteLine(e.Message);
}
}

我在另一个讨论中看到这可能与加密有关。 我正在使用 AES,并且我有一个主机密钥。 不过,我不明白如何输入加密。 基于该讨论,我正在玩这个:

ConnectionInfo connectionInfo = new PasswordConnectionInfo(server, 22, userID, password);
connectionInfo.Encryptions.Clear();
connectionInfo.Encryptions.Add("aes","ssh-rsa 2048 11:22:34:d4:56:d6:78:90:01:22:6b:46:34:54:55:8a")

我知道这不是传递给 Encryptions.Add() 的正确参数集,但我对使用此库有点迷茫;你能帮我弄清楚如何正确设置加密(假设这是问题所在)吗?

如何解决 SSH.NET 中的“数据包长度错误”错误

在此讨论中已解决。我需要使用

foreach (var d in connectionInfo.Encryptions.Where(p => p.Key != "aes128-cbc").ToList()) 
{
 connectionInfo.Encryptions.Remove(d.Key); 
}

替换我打算使用的任何加密