From: Marc-André Lureau <marcandre.lureau@redhat.com>
The function does not exist on win32.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
src/rpc/virnetlibsshsession.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c
index e71a79d0fb..e94b0d7a2e 100644
--- a/src/rpc/virnetlibsshsession.c
+++ b/src/rpc/virnetlibsshsession.c
@@ -60,7 +60,9 @@ typedef enum {
VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
VIR_NET_LIBSSH_AUTH_PASSWORD,
VIR_NET_LIBSSH_AUTH_PRIVKEY,
- VIR_NET_LIBSSH_AUTH_AGENT
+#ifndef WIN32
+ VIR_NET_LIBSSH_AUTH_AGENT,
+#endif
} virNetLibsshAuthMethods;
@@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
/* try to authenticate using the keyboard interactive way */
ret = virNetLibsshAuthenticateKeyboardInteractive(sess, auth);
break;
+#ifndef WIN32
case VIR_NET_LIBSSH_AUTH_AGENT:
/* try to authenticate using ssh-agent */
ret = ssh_userauth_agent(sess->session, NULL);
@@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
errmsg);
}
break;
+#endif
case VIR_NET_LIBSSH_AUTH_PRIVKEY:
/* try to authenticate using the provided ssh key */
ret = virNetLibsshAuthenticatePrivkey(sess, auth);
@@ -861,8 +865,13 @@ virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession *sess,
}
int
-virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
+virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess G_GNUC_UNUSED)
{
+#ifdef WIN32
+ virReportError(VIR_ERR_LIBSSH, "%s",
+ _("Agent authentication is not supported on this host"));
+ return -1;
+#else
virNetLibsshAuthMethod *auth;
virObjectLock(sess);
@@ -873,6 +882,7 @@ virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
virObjectUnlock(sess);
return 0;
+#endif
}
int
--
2.39.2
On 4/6/23 17:58, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The function does not exist on win32.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> src/rpc/virnetlibsshsession.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c
> index e71a79d0fb..e94b0d7a2e 100644
> --- a/src/rpc/virnetlibsshsession.c
> +++ b/src/rpc/virnetlibsshsession.c
> @@ -60,7 +60,9 @@ typedef enum {
> VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
> VIR_NET_LIBSSH_AUTH_PASSWORD,
> VIR_NET_LIBSSH_AUTH_PRIVKEY,
> - VIR_NET_LIBSSH_AUTH_AGENT
> +#ifndef WIN32
> + VIR_NET_LIBSSH_AUTH_AGENT,
> +#endif
> } virNetLibsshAuthMethods;
>
I'd just drop this hunk, and ...
>
> @@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> /* try to authenticate using the keyboard interactive way */
> ret = virNetLibsshAuthenticateKeyboardInteractive(sess, auth);
> break;
> +#ifndef WIN32
> case VIR_NET_LIBSSH_AUTH_AGENT:
> /* try to authenticate using ssh-agent */
> ret = ssh_userauth_agent(sess->session, NULL);
> @@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> errmsg);
> }
> break;
> +#endif
.. here just wrap the actual ssh_userauth_agent() call in ifdnef. The
@ret is set to SSH_AUTH_DENIED beforehand, and later in the code a
proper error message is reported.
> case VIR_NET_LIBSSH_AUTH_PRIVKEY:
> /* try to authenticate using the provided ssh key */
> ret = virNetLibsshAuthenticatePrivkey(sess, auth);
> @@ -861,8 +865,13 @@ virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession *sess,
> }
>
> int
> -virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> +virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess G_GNUC_UNUSED)
> {
> +#ifdef WIN32
> + virReportError(VIR_ERR_LIBSSH, "%s",
> + _("Agent authentication is not supported on this host"));
> + return -1;
> +#else
> virNetLibsshAuthMethod *auth;
>
> virObjectLock(sess);
> @@ -873,6 +882,7 @@ virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
>
> virObjectUnlock(sess);
> return 0;
> +#endif
> }
>
> int
This hunk alone is enough to ensure agent is not available on WIN32.
Michal
Hi
On Tue, Apr 11, 2023 at 11:10 AM Michal Prívozník <mprivozn@redhat.com>
wrote:
> On 4/6/23 17:58, marcandre.lureau@redhat.com wrote:
> > From: Marc-André Lureau <marcandre.lureau@redhat.com>
> >
> > The function does not exist on win32.
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> > src/rpc/virnetlibsshsession.c | 14 ++++++++++++--
> > 1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/rpc/virnetlibsshsession.c
> b/src/rpc/virnetlibsshsession.c
> > index e71a79d0fb..e94b0d7a2e 100644
> > --- a/src/rpc/virnetlibsshsession.c
> > +++ b/src/rpc/virnetlibsshsession.c
> > @@ -60,7 +60,9 @@ typedef enum {
> > VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
> > VIR_NET_LIBSSH_AUTH_PASSWORD,
> > VIR_NET_LIBSSH_AUTH_PRIVKEY,
> > - VIR_NET_LIBSSH_AUTH_AGENT
> > +#ifndef WIN32
> > + VIR_NET_LIBSSH_AUTH_AGENT,
> > +#endif
> > } virNetLibsshAuthMethods;
> >
>
> I'd just drop this hunk, and ...
>
> >
> > @@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> > /* try to authenticate using the keyboard interactive way */
> > ret = virNetLibsshAuthenticateKeyboardInteractive(sess,
> auth);
> > break;
> > +#ifndef WIN32
> > case VIR_NET_LIBSSH_AUTH_AGENT:
> > /* try to authenticate using ssh-agent */
> > ret = ssh_userauth_agent(sess->session, NULL);
> > @@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> > errmsg);
> > }
> > break;
> > +#endif
>
>
> .. here just wrap the actual ssh_userauth_agent() call in ifdnef. The
> @ret is set to SSH_AUTH_DENIED beforehand, and later in the code a
> proper error message is reported.
>
> > case VIR_NET_LIBSSH_AUTH_PRIVKEY:
> > /* try to authenticate using the provided ssh key */
> > ret = virNetLibsshAuthenticatePrivkey(sess, auth);
> > @@ -861,8 +865,13 @@
> virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession *sess,
> > }
> >
> > int
> > -virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> > +virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess
> G_GNUC_UNUSED)
> > {
> > +#ifdef WIN32
> > + virReportError(VIR_ERR_LIBSSH, "%s",
> > + _("Agent authentication is not supported on this
> host"));
> > + return -1;
> > +#else
> > virNetLibsshAuthMethod *auth;
> >
> > virObjectLock(sess);
> > @@ -873,6 +882,7 @@
> virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> >
> > virObjectUnlock(sess);
> > return 0;
> > +#endif
> > }
> >
> > int
>
> This hunk alone is enough to ensure agent is not available on WIN32.
>
>
Sure, that's fine with me.
thanks
© 2016 - 2026 Red Hat, Inc.