From b095a1ca63ab4962e7256616ff02607c5a77e089 Mon Sep 17 00:00:00 2001
From: JDepooter <joel.depooter@safe.com>
Date: Wed, 16 Jan 2019 17:18:20 -0800
Subject: [PATCH] ssh: log the libssh2 error message when ssh session startup
 fails

When a ssh session startup fails, it is useful to know why it has
failed. This commit changes the message from:
   "Failure establishing ssh session"
to something like this, for example:
   "Failure establishing ssh session: -5, Unable to exchange encryption keys"

Closes #3481
---
 lib/ssh.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/ssh.c b/lib/ssh.c
index f3b0a58be..8c68adcc1 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -667,7 +667,10 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
         break;
       }
       if(rc) {
-        failf(data, "Failure establishing ssh session");
+        char *err_msg = NULL;
+        (void)libssh2_session_last_error(sshc->ssh_session, &err_msg, NULL, 0);
+        failf(data, "Failure establishing ssh session: %d, %s", rc, err_msg);
+
         state(conn, SSH_SESSION_FREE);
         sshc->actualcode = CURLE_FAILED_INIT;
         break;
-- 
2.40.0