From 93df7134b5a16aaf68c4994c637f9b6b3e7a27c5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 2 Jun 2023 18:08:23 +0200 Subject: [PATCH] libssh2: provide error message when setting host key type fails Ref: https://curl.se/mail/archive-2023-06/0001.html Closes #11240 --- lib/vssh/libssh2.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c index 0b11fde63c..98fce5177f 100644 --- a/lib/vssh/libssh2.c +++ b/lib/vssh/libssh2.c @@ -889,6 +889,7 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data) } if(found) { + int rc; infof(data, "Found host %s in %s", conn->host.name, data->set.str[STRING_SSH_KNOWNHOSTS]); @@ -938,9 +939,15 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data) } infof(data, "Set \"%s\" as SSH hostkey type", hostkey_method); - result = libssh2_session_error_to_CURLE( - libssh2_session_method_pref( - sshc->ssh_session, LIBSSH2_METHOD_HOSTKEY, hostkey_method)); + rc = libssh2_session_method_pref(sshc->ssh_session, + LIBSSH2_METHOD_HOSTKEY, hostkey_method); + if(rc) { + char *errmsg = NULL; + int errlen; + libssh2_session_last_error(sshc->ssh_session, &errmsg, &errlen, 0); + failf(data, "libssh2: %s", errmsg); + result = libssh2_session_error_to_CURLE(rc); + } } else { infof(data, "Did not find host %s in %s",