我正在尝试使用SSH.NET通过SFTP上传文件。 SFTPClient.Connect()
引发带有消息“错误的数据包长度1302334341”的SshConnectionException。这是我的代码:
static void Main()
{
try
{
SftpClient sftp = new SftpClient(server, 22, userID, password);
sftp.Connect();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
我在另一个discussion中看到,这可能与加密有关。我正在使用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()的参数不是正确的,但是我对使用此库有些迷惑;您能帮我弄清楚如何正确设置加密(假设是问题所在)吗?
最佳答案
在this discussion中已解决。我需要使用删除加密
foreach (var d in connectionInfo.Encryptions.Where(p => p.Key != "aes128-cbc").ToList())
{
connectionInfo.Encryptions.Remove(d.Key);
}
替换我打算使用的任何加密