From 16d5f2a5660c61cc27bd5f1c7f512391d1c927aa Mon Sep 17 00:00:00 2001 From: Harry Sintonen Date: Mon, 29 Dec 2025 16:56:39 +0100 Subject: [PATCH] libssh: require private key or user-agent for public key auth Closes #20110 --- lib/vssh/libssh.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 5d5125b526..bde6355f73 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -921,7 +921,11 @@ static int myssh_in_AUTHLIST(struct Curl_easy *data, "keyboard-interactive, " : "", sshc->auth_methods & SSH_AUTH_METHOD_PASSWORD ? "password": ""); - if(sshc->auth_methods & SSH_AUTH_METHOD_PUBLICKEY) { + /* For public key auth we need either the private key or + CURLSSH_AUTH_AGENT. */ + if((sshc->auth_methods & SSH_AUTH_METHOD_PUBLICKEY) && + (data->set.str[STRING_SSH_PRIVATE_KEY] || + (data->set.ssh_auth_types & CURLSSH_AUTH_AGENT))) { myssh_to(data, sshc, SSH_AUTH_PKEY_INIT); infof(data, "Authentication using SSH public key file"); }