2012-06-04 11 views
5

Ich versuche, Dateien über SFTP mit SSH.NET hochladen. SFTPClient.Connect() löst eine SshConnectionException mit der Nachricht "Ungültige Paketlänge 1302334341" aus. Dies ist mein Code:Wie behebt man einen 'Fehlerhafte Paketlänge' Fehler in SSH.NET?

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

Ich sah in einem anderen discussion, dass dies wahrscheinlich mit Verschlüsselung zu tun hat. Ich benutze AES, und ich habe einen Host-Schlüssel. Ich verstehe jedoch nicht, wie man die Verschlüsselung eingibt. Auf der Grundlage dieser Diskussion, spielte ich mit diesem:

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") 

Ich weiß, das ist nicht der richtige Satz von Argumenten zu Encryptions.Add() übergeben, aber ich bin ein wenig bei der Verwendung dieser Bibliothek verloren; Können Sie mir helfen, herauszufinden, wie man die Verschlüsselung richtig einstellt (vorausgesetzt, das ist das Problem)?

+3

gelöst, in (http://sshnet.codeplex.com/discussions/358307). Ich musste Verschlüsselungen mit 'foreach entfernen (var d in connectionInfo.Encryptions.Where (p => p.Key! =" Aes128-cbc "). ToList()) { connectionInfo.Encryptions.Remove (d.Key) ; } ', ersetzen durch welche Verschlüsselung ich auch verwenden möchte. – sigil

+0

Sie können Ihren Kommentar als Antwort setzen - hat mir auch geholfen! – andreister

Antwort

0

Gelöst, in this discussion. Ich brauchte Verschlüsselungen zu entfernen, indem

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

Substitution je nachdem, was Verschlüsselung Ich beabsichtige [diese Diskussion] verwenden

Verwandte Themen