def connect(self, user, host, port, method, password=None, key=None): logging.info( "Client Verbindung mit folgenden Parametern wird hergestellt: Remote Address: %s; Port: %s; Username: %s; Password: %s; Key: %s; Agent: %s", host, port, user, password, ('None' if key is None else 'not None'), str(self.session.agent) ) if not host: raise MissingHostException() sshclient = SSHClient( host, port, method, password, user, key, self.session ) if sshclient.connect(): self.session.ssh_client = sshclient self.session.sftp_client = SFTPClient.from_client(sshclient) return paramiko.AUTH_SUCCESSFUL logging.debug('connection failed!') return paramiko.AUTH_FAILED
def connect(self, user, host, port, method, password=None, key=None): def get_agent_pubkeys(): keys = self.session.agent.get_keys() keys_parsed = [] for k in keys: ssh_pub_key = SSHKey("{} {}".format(k.get_name(), k.get_base64())) ssh_pub_key.parse() keys_parsed.append((k.get_name(), ssh_pub_key, k.can_sign())) return keys_parsed if not self.args.auth_hide_credentials: ssh_keys = None keys_formatted = "" if self.session.agent: ssh_keys = get_agent_pubkeys() keys_formatted = "\n".join(["\t\tAgent-Key: {} {} {}bits, can sign: {}".format(k[0], k[1].hash_sha256(), k[1].bits, k[2]) for k in ssh_keys]) logging.info( "\n".join(( "Client connection established with parameters:", "\tRemote Address: %s", "\tPort: %s", "\tUsername: %s", "\tPassword: %s", "\tKey: %s", "\tAgent: %s", "%s" )), host, port, user, password, ('None' if key is None else 'not None'), "available keys: {}".format(len(ssh_keys)) if ssh_keys else 'no agent', keys_formatted ) if not host: raise MissingHostException() sshclient = SSHClient( host, port, method, password, user, key, self.session ) if sshclient.connect(): self.session.ssh_client = sshclient self.session.sftp_client = SFTPClient.from_client(sshclient) return paramiko.AUTH_SUCCESSFUL logging.warning('connection failed!') return paramiko.AUTH_FAILED
def connect(self, user: Text, host: Text, port: int, method: AuthenticationMethod, password: Optional[Text] = None, key: Optional[PKey] = None, *, run_post_auth: bool = True) -> int: if not host: raise MissingHostException() auth_status = paramiko.common.AUTH_FAILED self.session.ssh_client = SSHClient(host, port, method, password, user, key, self.session) self.pre_auth_action() try: if self.session.ssh_client is not None and self.session.ssh_client.connect( ): auth_status = paramiko.common.AUTH_SUCCESSFUL except paramiko.SSHException: logging.error( stylize("Connection to remote server refused", fg('red') + attr('bold'))) return paramiko.common.AUTH_FAILED if run_post_auth: self.post_auth_action( auth_status == paramiko.common.AUTH_SUCCESSFUL) return auth_status
def connect(self, user, host, port, method, password=None, key=None): logging.info( "\n".join(("Client connection established with parameters:", "\tRemote Address: %s", "\tPort: %s", "\tUsername: %s", "\tPassword: %s", "\tKey: %s", "\tAgent: %s")), host, port, user, password, ('None' if key is None else 'not None'), str(self.session.agent)) if not host: raise MissingHostException() sshclient = SSHClient(host, port, method, password, user, key, self.session) if sshclient.connect(): self.session.ssh_client = sshclient self.session.sftp_client = SFTPClient.from_client(sshclient) return paramiko.AUTH_SUCCESSFUL logging.debug('connection failed!') return paramiko.AUTH_FAILED