def connect(self, host=None, username=None, password=None, private_key=None, private_key_pass=None, port=None, timeout=30, compress=None): host = host or self._host username = username or self._username password = password or self._password compress = compress or self._compress port = port if port is not None else self._port pkey = self._pkey if private_key: pkey = self.load_private_key(private_key, private_key_pass) log.debug("connecting to host %s on port %d as user %s" % (host, port, username)) try: sock = self._get_socket(host, port) transport = paramiko.Transport(sock) transport.banner_timeout = timeout except socket.error: raise exception.SSHConnectionError(host, port) # Enable/disable compression transport.use_compression(compress) # Authenticate the transport. try: transport.connect(username=username, pkey=pkey, password=password) except paramiko.AuthenticationException: raise exception.SSHAuthException(username, host) except paramiko.SSHException, e: msg = e.args[0] raise exception.SSHError(msg)
def connect(self, host=None, username=None, password=None, private_key=None, private_key_pass=None, port=22, timeout=30): host = host or self._host username = username or self._username password = password or self._password pkey = self._pkey if private_key: pkey = self.load_private_key(private_key, private_key_pass) log.debug("connecting to host %s on port %d as user %s" % (host, port, username)) try: sock = self._get_socket(host, port) transport = ssh.Transport(sock) transport.banner_timeout = timeout except socket.error: raise exception.SSHConnectionError(host, port) # Authenticate the transport. try: transport.connect(username=username, pkey=pkey, password=password) except ssh.AuthenticationException: raise exception.SSHAuthException(username, host) except ssh.SSHException, e: msg = e.args[0] raise exception.SSHError(msg)
def __init__(self, host, username=None, password=None, private_key=None, private_key_pass=None, port=22, timeout=30): self._timeout = timeout self._sftp_live = False self._sftp = None self._pkey = None if not username: username = os.environ['LOGNAME'] # Begin the SSH transport. self._transport_live = False try: sock = self._get_socket(host, port) self._transport = paramiko.Transport(sock) self._transport.banner_timeout = self._timeout except socket.error: raise exception.SSHConnectionError(host, port) self._transport_live = True # Authenticate the transport. pkey = None if private_key: # Use Private Key. log.debug('private key specified') if private_key.endswith('rsa') or private_key.count('rsa'): pkey = self._load_rsa_key(private_key, private_key_pass) elif private_key.endswith('dsa') or private_key.count('dsa'): pkey = self._load_dsa_key(private_key, private_key_pass) else: log.debug("specified key does not end in either rsa or dsa" + \ ", trying both") pkey = self._load_rsa_key(private_key, private_key_pass) if pkey is None: pkey = self._load_dsa_key(private_key, private_key_pass) self._pkey = pkey elif not password: raise exception.SSHNoCredentialsError() try: self._transport.connect(username=username, pkey=pkey, password=password) except paramiko.AuthenticationException: raise exception.SSHAuthException(username, host) except paramiko.SSHException, e: msg = e.args[0] raise exception.SSHError(msg)