From: Michal Privoznik <[email protected]> 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 <[email protected]> --- src/rpc/virnetlibsshsession.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c index 2f590ec1c4..bbcfb19e5c 100644 --- a/src/rpc/virnetlibsshsession.c +++ b/src/rpc/virnetlibsshsession.c @@ -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) { -- 2.53.0
