From 5aa5c4292ab7cd69eaf1300ba329f8ac7c4cd3e8 Mon Sep 17 00:00:00 2001 From: Medveditskov Yuriy Sergeevich Date: Thu, 24 Jun 2021 16:27:04 +0300 Subject: [PATCH] Move sending SSH_MSG_KEXINIT to Session.cs from key exchange procedure --- src/Renci.SshNet/Security/KeyExchange.cs | 2 -- src/Renci.SshNet/Session.cs | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Renci.SshNet/Security/KeyExchange.cs b/src/Renci.SshNet/Security/KeyExchange.cs index a13c272a6..e7258719c 100644 --- a/src/Renci.SshNet/Security/KeyExchange.cs +++ b/src/Renci.SshNet/Security/KeyExchange.cs @@ -71,8 +71,6 @@ public virtual void Start(Session session, KeyExchangeInitMessage message) { Session = session; - SendMessage(session.ClientInitMessage); - // Determine encryption algorithm var clientEncryptionAlgorithmName = (from b in session.ConnectionInfo.Encryptions.Keys from a in message.EncryptionAlgorithmsClientToServer diff --git a/src/Renci.SshNet/Session.cs b/src/Renci.SshNet/Session.cs index 0748b8dac..2787de56c 100644 --- a/src/Renci.SshNet/Session.cs +++ b/src/Renci.SshNet/Session.cs @@ -620,6 +620,10 @@ public void Connect() // Start incoming request listener ThreadAbstraction.ExecuteThread(() => MessageListener()); + // Send SSH_MSG_KEXINIT. There is no need to await SSH_MSG_KEXINIT from the server + // Cisco switches can await SSH_MSG_KEXINIT from the client for no reason before sending it + SendMessage(ClientInitMessage); + // Wait for key exchange to be completed WaitOnHandle(_keyExchangeCompletedWaitHandle);