virnetlibsshsession: Check later for auth callback in virNetLibsshAuthenticatePassword()

The first thing that virNetLibsshAuthenticatePassword() does is
read password from config file. For this it does not need auth
callback. If that password fails to authenticate then
corresponding callback from the auth callback is called. This is
actual place where auth callback should be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Richrad W.M. Jones <rjones@redhat.com>
This commit is contained in:
Michal Privoznik committed 2026-05-18 09:58:55 +02:00
1 parent 1147fb79b7
commit ebf353f3c4
1 file changed
+7 -7
+7 -7
View File
@@ -517,13 +517,6 @@ virNetLibsshAuthenticatePassword(virNetLibsshSession *sess)
VIR_DEBUG("sess=%p", sess);
/* password authentication with interactive password request */
if (!sess->cred || !sess->cred->cb) {
virReportError(VIR_ERR_LIBSSH, "%s",
_("Can't perform authentication: Authentication callback not provided"));
return SSH_AUTH_ERROR;
}
/* first try to get password from config */
if (virAuthGetCredential("ssh", sess->hostname, "password", sess->authPath,
&password) < 0)
@@ -539,6 +532,13 @@ virNetLibsshAuthenticatePassword(virNetLibsshSession *sess)
goto error;
}
/* password authentication with interactive password request */
if (!sess->cred || !sess->cred->cb) {
virReportError(VIR_ERR_LIBSSH, "%s",
_("Can't perform authentication: Authentication callback not provided"));
return SSH_AUTH_ERROR;
}
/* Try the authenticating the set amount of times. The server breaks the
* connection if maximum number of bad auth tries is exceeded */
while (true) {