0 votes
by (120 points)

Here's the log info:

2018-20-08 13:28:01.308 Opening log file.
2018-20-08 13:28:01.824 INFO Sftp(1) Info: Connecting to ftp.decisioncloud.me:22 using Sftp 2.0.3484.0.
2018-20-08 13:28:01.981 DEBUG Sftp(1) SSH: Server is 'SSH-2.0-OpenSSH7.4'.
2018-20-08 13:28:02.121 VERBOSE Sftp(1) SSH: Received packet SSH
MSGKEXINIT (1265 bytes).
2018-20-08 13:28:02.136 DEBUG Sftp(1) SSH: Negotiation started.
2018-20-08 13:28:02.136 VERBOSE Sftp(1) SSH: Sending packet SSH
MSGKEXINIT (504 bytes).
2018-20-08 13:28:02.152 DEBUG Sftp(1) SSH: Group exchange.
2018-20-08 13:28:02.152 VERBOSE Sftp(1) SSH: Sending packet SSH
MSGKEXDHINIT (16 bytes).
2018-20-08 13:28:02.292 VERBOSE Sftp(1) SSH: Received packet SSHMSGUNIMPLEMENTED (5 bytes).
2018-20-08 13:28:02.324 DEBUG Sftp(1) SSH: Negotiation failed: Rebex.Net.SshException: Key exchange failed. Requested service is not implemented. ---> Rebex.Net.SshException: Requested service is not implemented.
at Rebex.Net.SshSession.OnTransportPacketReceived(Byte[] buffer, Int32 offset, Int32 count)
at Rebex.Net.SshSession.Process(Int64& receivedPacketCount, Boolean returnIfNotAvailable)
at Rebex.Net.SshSession.ReceivePacket(SshLayer layer)
at Rebex.Net.SshDiffieHellmanGroupExchangeNegotiation.Negotiate(SshSession session, Byte[] VC, Byte[] VS, Byte[] IC, Byte[] IS, Byte[]& K, Byte[]& H, Byte[]& KS)
at Rebex.Net.SshSession.Negotiate(Byte[] I
S)
--- End of inner exception stack trace ---
at Rebex.Net.SshSession.Negotiate(Byte[] IS)
2018-20-08 13:28:02.324 ERROR Sftp(1) SSH: Rebex.Net.SshException: Key exchange failed. Requested service is not implemented. ---> Rebex.Net.SshException: Requested service is not implemented.
at Rebex.Net.SshSession.OnTransportPacketReceived(Byte[] buffer, Int32 offset, Int32 count)
at Rebex.Net.SshSession.Process(Int64& receivedPacketCount, Boolean returnIfNotAvailable)
at Rebex.Net.SshSession.ReceivePacket(SshLayer layer)
at Rebex.Net.SshDiffieHellmanGroupExchangeNegotiation.Negotiate(SshSession session, Byte[] V
C, Byte[] VS, Byte[] IC, Byte[] IS, Byte[]& K, Byte[]& H, Byte[]& KS)
at Rebex.Net.SshSession.Negotiate(Byte[] IS)
--- End of inner exception stack trace ---
at Rebex.Net.SshSession.Negotiate(Byte[] I
S)
at Rebex.Net.SshSession.Negotiate()
2018-20-08 13:28:02.339 ERROR Sftp(1) Info: Rebex.Net.SshException: Key exchange failed. Requested service is not implemented. ---> Rebex.Net.SshException: Requested service is not implemented.
at Rebex.Net.SshSession.OnTransportPacketReceived(Byte[] buffer, Int32 offset, Int32 count)
at Rebex.Net.SshSession.Process(Int64& receivedPacketCount, Boolean returnIfNotAvailable)
at Rebex.Net.SshSession.ReceivePacket(SshLayer layer)
at Rebex.Net.SshDiffieHellmanGroupExchangeNegotiation.Negotiate(SshSession session, Byte[] VC, Byte[] VS, Byte[] IC, Byte[] IS, Byte[]& K, Byte[]& H, Byte[]& KS)
at Rebex.Net.SshSession.Negotiate(Byte[] I
S)
--- End of inner exception stack trace ---
at Rebex.Net.SshSession.Negotiate(Byte[] I_S)
at Rebex.Net.SshSession.Negotiate()
at Rebex.Net.Sftp.Connect(String serverName, Int32 serverPort, SshParameters parameters)

Applies to: Rebex SFTP

1 Answer

0 votes
by (70.2k points)
edited by

The error is most likely caused by a mismatch between the form of Diffie-Hellman group exchange used by the client and the server. The old Rebex client uses the legacy form that was prevalent in early days of the SSH protocol (even as late as 2010, legacy form was the only form supported by some servers), but the server you are connecting to insists on using the standard form which is prevalent now. Historically, many servers supported both forms, but it looks like some SSH servers have recently started rejecting clients using the legacy form.

Possible solutions:

  1. Set Sftp object's Settings.SshParameters.UseLegacyGroupExchange property to false (only available in Rebex SFTP 2017 R6.2 and later).

  2. Upgrade to a recent version of Rebex SFTP. To make sure it resolves the issue, try the free 30-day trial first.

...