# Buggy code
def auth(self):
    if self.pkey is not None:
        logger.debug("Proceeding with private key file authentication")
        return self._pkey_auth(self.password)
    if self.allow_agent:
        try:
            self.session.userauth_agent(self.user)
        except Exception as ex:
            logger.debug(
                "Agent auth failed with %s, "
                "continuing with other authentication methods",
                ex,
            )
        else:
            logger.debug("Authentication with SSH Agent succeeded.")
            return
    if self.gssapi_auth or (self.gssapi_server_identity or self.gssapi_client_identity):
        try:
            self.session.userauth_gssapi()
        except Exception as ex:
            logger.error(
                "GSSAPI authentication with server id %s and client id %s failed - %s",
                self.gssapi_server_identity,
                self.gssapi_client_identity,
                ex,
            )
    if self.identity_auth:
        try:
            self._identity_auth()
        except AuthenticationError:
            if self.password is None:
                raise
    logger.debug("Private key auth failed, trying password")
    self._password_auth()


# Traceback (pssh.exceptions.AuthenticationException)
(coba2) debian@debian-mon:~/coba2$ ssh root@10.90.200.55 -p 3322
Last login: Fri Sep 18 10:23:25 2020 from 10.90.200.57
[root@candibinangun ~]# exit
logout
Connection to 10.90.200.55 closed.

(coba2) debian@debian-mon:~/coba2$ python
Python 3.8.5 (default, Aug 28 2020, 06:44:01)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
from pssh.clients import SSHClient
sshObj=SSHClient('10.90.200.55', user='root', port=3322, num_retries=3, retry_delay=5, timeout=5)
Traceback (most recent call last):
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 93, in _auth_retry
self.auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/native/single.py", line 179, in auth
self._identity_auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 183, in _identity_auth
raise AuthenticationException("No authentication methods succeeded")
pssh.exceptions.AuthenticationException: No authentication methods succeeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 93, in _auth_retry
self.auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/native/single.py", line 179, in auth
self._identity_auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 183, in _identity_auth
raise AuthenticationException("No authentication methods succeeded")
pssh.exceptions.AuthenticationException: No authentication methods succeeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 93, in _auth_retry
self.auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/native/single.py", line 179, in auth
self._identity_auth()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 183, in _identity_auth
raise AuthenticationException("No authentication methods succeeded")
pssh.exceptions.AuthenticationException: No authentication methods succeeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/native/single.py", line 103, in __init__
super(SSHClient, self).__init__(
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 80, in __init__
self._init()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 85, in _init
self._auth_retry()
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 97, in _auth_retry
return self._auth_retry(retries=retries+1)
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 97, in _auth_retry
return self._auth_retry(retries=retries+1)
File "/home/debian/.local/share/virtualenvs/coba2-gQE_YhKQ/lib/python3.8/site-packages/pssh/clients/base/single.py", line 99, in _auth_retry
raise AuthenticationException(msg, self.host, self.port, ex)
pssh.exceptions.AuthenticationException: ('Authentication error while connecting to %s:%s - %s', '10.90.200.55', 3322, AuthenticationException('No authentication methods succeeded'))

# Fixed code
def auth(self):
    if self.pkey is not None:
        logger.debug("Proceeding with private key file authentication")
        return self._pkey_auth(self.pkey, password=self.password)
    if self.allow_agent:
        try:
            self.session.userauth_agent(self.user)
        except Exception as ex:
            logger.debug(
                "Agent auth failed with %s, "
                "continuing with other authentication methods",
                ex,
            )
        else:
            logger.debug("Authentication with SSH Agent succeeded.")
            return
    if self.gssapi_auth or (self.gssapi_server_identity or self.gssapi_client_identity):
        try:
            self.session.userauth_gssapi()
        except Exception as ex:
            logger.error(
                "GSSAPI authentication with server id %s and client id %s failed - %s",
                self.gssapi_server_identity,
                self.gssapi_client_identity,
                ex,
            )
    if self.identity_auth:
        try:
            self._identity_auth()
        except AuthenticationError:
            if self.password is None:
                raise
    logger.debug("Private key auth failed, trying password")
    self._password_auth()