Skip to content

login method in pxssh is throwing exception password refused for correct password which will expire in few days #353

@Arunakumari1989

Description

@Arunakumari1989

In pxssh.py , login method because of the "(?:password") in expects the warning message "Warning: your password will expire in 3 days" , treating it as password prompt, so finally it is coming out with password refused exception for the correct password which is going to expire in near.

i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT, "(?i)connection closed by remote host"], timeout=login_timeout)

    # First phase
    if i==0:
        # New certificate -- always accept it.
        # This is what you get if SSH does not have the remote host's
        # public key stored in the 'known_hosts' cache.
        self.sendline("yes")
        i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
    if i==2: # password or passphrase
        self.sendline(password)
        i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
    if i==4:
        self.sendline(terminal_type)
        i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])

    # Second phase
    if i==0:
        # This is weird. This should not happen twice in a row.
        self.close()
        raise ExceptionPxssh('Weird error. Got "are you sure" prompt twice.')
    elif i==1: # can occur if you have a public key pair set to authenticate.
        ### TODO: May NOT be OK if expect() got tricked and matched a false prompt.
        pass
    elif i==2: # password prompt again
        # For incorrect passwords, some ssh servers will
        # ask for the password again, others return 'denied' right away.
        # If we get the password prompt again then this means
        # we didn't get the password right the first time.
        self.close()
        raise ExceptionPxssh('password refused')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions