SFTP Chilkat错误“预期KEX_DH_GEX_GROUP”

时间:2013-08-31 13:13:31

标签: sftp chilkat

我正在尝试连接到SFTP但是在函数sftp.Connect(主机名,端口)中从Chilkat收到以下错误......

DllDate:2010年12月22日     UnlockPrefix: *     用户名:     组件:.NET 2.0     SftpVersion:0     主机名:     港口:22     ConnectTimeoutMs:50000

调用ConnectSocket2     这是一个IPV4数字地址......     使用IPV4连接。     ipAddress: 。*     socketHandle:0x804     ai_addrlen:16     ai_addr:0200 0016 4B7F 64D8 0000 0000 0000 0000

myIP_3: **.***.***.***
myPort_3: *****
connect successful.
Established TCP/IP connection with SSH server
clientIdentifier: SSH-2.0-PuTTY_Local:_May_11_2009_17:22:38
initialDataFromSshServer: SSH-2.0-0.0 

serverVersion: SSH-2.0-0.0 
KeyExchangeAlgs:
  algorithm: diffie-hellman-group1-sha1
  algorithm: diffie-hellman-group-exchange-sha1
  algorithm: diffie-hellman-group14-sha1
HostKeyAlgs:
  algorithm: ssh-dss
EncCS:
  algorithm: aes256-cbc
  algorithm: aes192-cbc
  algorithm: aes128-cbc
  algorithm: twofish-cbc
  algorithm: blowfish-cbc
  algorithm: 3des-cbc
  algorithm: arcfour
EncSC:
  algorithm: aes256-cbc
  algorithm: aes192-cbc
  algorithm: aes128-cbc
  algorithm: twofish-cbc
  algorithm: blowfish-cbc
  algorithm: 3des-cbc
  algorithm: arcfour
MacCS:
  algorithm: hmac-sha1
  algorithm: hmac-sha1-96
  algorithm: hmac-md5
  algorithm: hmac-md5-96
MacSC:
  algorithm: hmac-sha1
  algorithm: hmac-sha1-96
  algorithm: hmac-md5
  algorithm: hmac-md5-96
CompCS:
  algorithm: zlib
  algorithm: none
CompSC:
  algorithm: zlib
  algorithm: none
Encryption: 256-bit AES
Encryption: 256-bit AES
MAC: HMAC-SHA1
MAC: HMAC-SHA1
Compression: none
Compression: none
Key Exchange: DH Group Exchange SHA1
Host Key Algorithm: DSS
numBits: 160
pbits: 2048

使用GEX Group。     发送KEX_DH_GEX_REQUEST ...     pbits:2048

收到意外消息。预计KEX_DH_GEX_GROUP。     msgType:1

失败。

我主要使用4个功能连接到SFTP

sftp.UnlockComponent(ChilkatKey);
sftp.Connect(hostname, port);
sftp.AuthenticatePw(username, password);
sftp.InitializeSftp();

我错过了什么? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

正确的顺序应该和你的一样:

sftp.UnlockComponent(ChilkatKey);
sftp.Connect(hostname, port);
sftp.AuthenticatePw(username, password);
sftp.InitializeSftp();

但在这些人之后,你需要调用OpenDir和ReadDir(如果你需要获取远程文件夹上的文件数)方法,比如;

string handler = sftp.OpenDir("remote_path");
SFtpDir compassDir = sftp.ReadDir(handler);

只需下载一个你不需要调用ReadDir的文件,但必须调用OpenDir。 填充compassDir对象后,您可以通过;

获取文件计数
int fileAmount = compassDir.NumFilesAndDirs

或者您可以按名称下载文件;

sftp.DownloadFileByName("local_path","Remote_path_with_file_name");

抱歉输入错误。

答案 1 :(得分:-1)

当我已经在WinSCP中打开连接并尝试使用Chilkat连接到相同的远程服务器时,我收到此错误。