2012-06-04 7 views
5

Estoy tratando de cargar archivos a través de SFTP, usando SSH.NET. SFTPClient.Connect() arroja una SshConnectionException con el mensaje, "Malo paquete de longitud 1302334341." Este es mi código:¿Cómo resolver un error de "longitud de paquete incorrecta" en SSH.NET?

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

vi en otro discussion que esto probablemente tiene que ver con el cifrado. Estoy usando AES, y tengo una clave de host. Aunque no entiendo cómo ingresar el cifrado. Sobre la base de esa discusión, que estaba jugando con esto:

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

Yo sé que no es el conjunto correcto de argumentos para transmitir a Encryptions.Add(), pero estoy un poco perdido con el uso de esta biblioteca; ¿Me pueden ayudar a encontrar la forma de configurar el cifrado correctamente (suponiendo que ese sea el problema)?

+3

resuelto, en [esta discusión] (http://sshnet.codeplex.com/discussions/358307). Necesitaba eliminar encriptaciones usando 'foreach (var d en connectionInfo.Encryptions.Where (p => p.Key! =" Aes128-cbc "). ToList()) { connectionInfo.Encryptions.Remove (d.Key) ; } ', sustituyéndolo en el cifrado que pretenda usar. – sigil

+0

Puede poner su comentario como una respuesta, ¡me ayudó también! – andreister

Respuesta

0

Resuelto, en this discussion. Que necesitaba para eliminar cifrados usando

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

sustituyendo en el que sea cifrado pretendo utilizar

Cuestiones relacionadas