def METHOD_NAME(
    hostname: str,
    port: int = 22,
    username: str = None,
    password: str = None,
    pkey: str = None,
    key_filename: str = None,
    auth_timeout: float = 10,
    timeout: float = 10,
    allow_agent: bool = True,
    look_for_keys: bool = True,
    passphrase: str = None,
):
    log.debug(f"Establishing SSH connection to {hostname}")
    client = SSHClient()
    client.load_system_host_keys()
    client.connect(
        hostname,
        port=port,
        username=username,
        password=password,
        pkey=pkey,
        passphrase=passphrase,
        key_filename=key_filename,
        timeout=timeout,
        auth_timeout=auth_timeout,
        allow_agent=allow_agent,
        look_for_keys=look_for_keys,
    )
    meminfo = get_proc_meminfo(client)
    cpuinfo = get_proc_cpuinfo(client)
    netdev, ip4, ip6 = get_net_info(client)
    client.close()
    s = OnpremInstance(
        id=hostname,
        instance_cores=len(cpuinfo),
        instance_memory=round(meminfo.get("MemTotal", 0) / 1024**2),
        instance_status=instance_status_map.get("running", InstanceStatus.UNKNOWN),
        instance_type=cpuinfo.get("0", {}).get("model name"),
        network_device=netdev,
        network_ip4=ip4,
        network_ip6=ip6,
    )
    return s