I changed the return to SSH_AUTH_SUCCESS and am now I get the second authentication attempt and can authenticate. So is the documentation wrong or am doing the wrong (but working) thing?
-Eric On 10/12/17, 9:28 PM, "Eric Bentley" <e...@bentleyemail.net> wrote: … int auth_publickey(ssh_session session, const char *user, struct ssh_key_struct *pubkey, char signature_state, void *userdata) { struct AUTH_DATA *auth_data = (struct AUTH_DATA*) userdata; DBGINFO("%s Authenticating user ->%s<-\n", __func__, user); if (signature_state == SSH_PUBLICKEY_STATE_NONE){ DBGINFO("Partial auth \n"); return SSH_AUTH_PARTIAL; } if (signature_state != SSH_PUBLICKEY_STATE_VALID){ DBGINFO("PUBLIC KEY INVALID\n"); return SSH_AUTH_DENIED; } ….. I’ve tried calling my ssh server with the linux ssh app and also an libssh app using ssh_userauth_publickey_auto() and I get multiple calls to my auth_publickey() function but signature_state is always SSH_PUBLICKEY_STATE_NONE. I’ve read that SSH_AUTH_PARTIAL is the appropriate response but I never get a call with another state. Any hints at what I may be doing wrong? Thanks, -Eric