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
    

Reply via email to