首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Chilkat库“预期的KEX_DH_GEX_GROUP/KEXDH_REPLY”错误

使用Chilkat库“预期的KEX_DH_GEX_GROUP/KEXDH_REPLY”错误
EN

Stack Overflow用户
提问于 2013-09-11 09:46:24
回答 1查看 1.6K关注 0票数 0

我正在评估Chilkat SFTP的新图书馆。

但是,在连接到SFTP时,我得到了如下错误:

ChilkatLog:

Connect_SFtp:

代码语言:javascript
复制
 DllDate: Aug 15 2013
代码语言:javascript
复制
 ChilkatVersion: 9.4.1.42
代码语言:javascript
复制
 UnlockPrefix: xxxxxxxx
代码语言:javascript
复制
 Username: (hidden)
代码语言:javascript
复制
 Architecture: Little Endian; 32-bit
代码语言:javascript
复制
 Language: .NET 2.0
代码语言:javascript
复制
 VerboseLogging: 0
代码语言:javascript
复制
 SftpVersion: 0
代码语言:javascript
复制
 hostname: xx.xxx.xxx.xxx
代码语言:javascript
复制
 port: 22
代码语言:javascript
复制
 ConnectTimeoutMs\_1: 50000
代码语言:javascript
复制
 calling ConnectSocket2
代码语言:javascript
复制
 IPV6 enabled connect with NO heartbeat.
代码语言:javascript
复制
 This is an IPV4 numeric address...
代码语言:javascript
复制
 AddrInfoList:
代码语言:javascript
复制
   AddrInfo:
代码语言:javascript
复制
     ai\_flags: 4
代码语言:javascript
复制
     ai\_family: 2
代码语言:javascript
复制
     ai\_socktype: 1
代码语言:javascript
复制
     ai\_protocol: 0
代码语言:javascript
复制
     ai\_addrlen: 16
代码语言:javascript
复制
     ai\_canonname: (NULL)
代码语言:javascript
复制
   --AddrInfo
代码语言:javascript
复制
 --AddrInfoList
代码语言:javascript
复制
 Connect using IPV4.
代码语言:javascript
复制
 ipAddress1: xx.xxx.xxx.xxx
代码语言:javascript
复制
 myIP\_3: xx.x.xxx.xx
代码语言:javascript
复制
 myPort\_3: 50483
代码语言:javascript
复制
 connect successful (2)
代码语言:javascript
复制
 Established TCP/IP connection with SSH server
代码语言:javascript
复制
 Turning on TCP\_NODELAY.
代码语言:javascript
复制
 clientIdentifier: SSH-2.0-PuTTY\_Local:\_May\_11\_2009\_17:22:38
代码语言:javascript
复制
 Sending client identifier...
代码语言:javascript
复制
 Done sending client identifier.
代码语言:javascript
复制
 Reading server version...
代码语言:javascript
复制
 initialDataFromSshServer: SSH-2.0-0.0  
代码语言:javascript
复制
serverVersion: SSH-2.0-0.0 
KeyExchangeAlgs:
  algorithm: diffie-hellman-group1-sha1
  algorithm: diffie-hellman-group-exchange-sha1
  algorithm: diffie-hellman-group14-sha1
--KeyExchangeAlgs
HostKeyAlgs:
  algorithm: ssh-dss
--HostKeyAlgs
EncCS:
  algorithm: aes256-cbc
  algorithm: aes192-cbc
  algorithm: aes128-cbc
  algorithm: twofish-cbc
  algorithm: blowfish-cbc
  algorithm: 3des-cbc
  algorithm: arcfour
--EncCS
EncSC:
  algorithm: aes256-cbc
  algorithm: aes192-cbc
  algorithm: aes128-cbc
  algorithm: twofish-cbc
  algorithm: blowfish-cbc
  algorithm: 3des-cbc
  algorithm: arcfour
--EncSC
MacCS:
  algorithm: hmac-sha1
  algorithm: hmac-sha1-96
  algorithm: hmac-md5
  algorithm: hmac-md5-96
--MacCS
MacSC:
  algorithm: hmac-sha1
  algorithm: hmac-sha1-96
  algorithm: hmac-md5
  algorithm: hmac-md5-96
--MacSC
CompCS:
  algorithm: zlib
  algorithm: none
--CompCS
CompSC:
  algorithm: zlib
  algorithm: none
--CompSC
Encryption: 256-bit AES CBC
Encryption: 256-bit AES CBC
MAC: HMAC-SHA1
MAC: HMAC-SHA1
Compression: zlib
Compression: zlib
Key Exchange: DH Group Exchange SHA1
Host Key Algorithm: DSS
numBits: 160
pbits: 2048
Using GEX Group.
Sending KEX_DH_GEX_REQUEST...
pbits: 2048
Unexpected message received.  Expected KEX_DH_GEX_GROUP/KEXDH_REPLY.
msgType: 1
Failed.

-Connect_SFtp --ChilkatLog

我主要是使用这4个函数连接到SFTP。

代码语言:javascript
复制
sftp.UnlockComponent(ChilkatKey);  
sftp.Connect(hostname, port);  
sftp.AuthenticatePw(username, password);  
sftp.InitializeSftp();  

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

EN

回答 1

Stack Overflow用户

发布于 2013-10-18 15:58:25

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

但是在这些人之后,您需要调用OpenDir和ReadDir(如果您需要获取文件,可以依赖远程文件夹),比如;

代码语言:javascript
复制
string handler = sftp.OpenDir("remote_path");
SFtpDir compassDir = sftp.ReadDir(handler);

要下载一个不需要调用ReadDir但必须调用OpenDir的文件。在填充compassDir对象之后,您可以通过以下方法获得文件计数;

代码语言:javascript
复制
int fileAmount = compassDir.NumFilesAndDirs

或者你可以下载文件的名字如下;

代码语言:javascript
复制
sftp.DownloadFileByName("local_path","Remote_path_with_file_name");

很抱歉出错了……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18737838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档