code: def connect(self, username, password, key, address, port, jump_host):
          
          if port is None:
              self.remote_port = 22
          else:
              self.remote_port = int(port)
  
          auth = Auth(username=username, password=password, key=key)
          if jump_host is not None:
              jump_auth = Auth(username=jump_host['username'],
                               password=jump_host['password'],
                               key=jump_host['key'])
              if jump_host['port'] is None:
                  jump_host['port'] = 22
          else:
              jump_auth = None
          self.shell.connect(auth, address, self.remote_port, jump_host, jump_auth)
          transport = self.shell.transport()
          self.tunnel.configure(transport, auth, address, self.remote_port)
          self.remote_addr = address
docs: Connect ssh tunnel and shell executor to remote host
  
          :type username: str
          :param username: username for authentication
          :type password: str
          :param password: password for authentication, may be used to unlock rsa key
          :type key: str
          :param key: path to rsa key for authentication
          :type address: str
          :param address: address for remote host
          :type port: int
          :param port: ssh port for remote host