docs: def _read_ssh_config(ssh_host,
                           ssh_config_file,
                           ssh_username=None,
                           ssh_pkey=None,
                           ssh_port=None,
                           ssh_proxy=None,
                           compression=None,
                           logger=None):
          """
          Read ssh_config_file and tries to look for user (ssh_username),
          identityfile (ssh_pkey), port (ssh_port) and proxycommand
          (ssh_proxy) entries for ssh_host
          """
          ssh_config = paramiko.SSHConfig()
          if not ssh_config_file:  # handle case where it's an empty string
              ssh_config_file = None
  
          # Try to read SSH_CONFIG_FILE
          try:
              # open the ssh config file
              with open(os.path.expanduser(ssh_config_file), 'r') as f:
                  ssh_config.parse(f)
              # looks for information for the destination system
              hostname_info = ssh_config.lookup(ssh_host)
              # gather settings for user, port and identity file
              # last resort: use the 'login name' of the user
              ssh_username = (
                  ssh_username or
                  hostname_info.get('user')
              )
              ssh_pkey = (
                  ssh_pkey or
                  hostname_info.get('identityfile', [None])[0]
              )
              ssh_host = hostname_info.get('hostname')
              ssh_port = ssh_port or hostname_info.get('port')
  
              proxycommand = hostname_info.get('proxycommand')
              ssh_proxy = ssh_proxy or (paramiko.ProxyCommand(proxycommand) if
                                        proxycommand else None)
              if compression is None:
                  compression = hostname_info.get('compression', '')
                  compression = True if compression.upper() == 'YES' else False
          except IOError:
              if logger:
                  logger.warning(
                      'Could not read SSH configuration file: {0}'
                      .format(ssh_config_file)
                  )
          except (AttributeError, TypeError):  # ssh_config_file is None
              if logger:
                  logger.info('Skipping loading of ssh configuration file')
          finally:
              return (ssh_host,
                      ssh_username or getpass.getuser(),
                      ssh_pkey,
                      int(ssh_port) if ssh_port else 22,  # fallback value
                      ssh_proxy,
                      compression)