code: def _use_ssh_config(self, dict_arg):
          
          connect_dict = dict_arg.copy()
  
          # Use SSHConfig to generate source content.
          full_path = path.abspath(path.expanduser(self.ssh_config_file))
          if path.exists(full_path):
              ssh_config_instance = paramiko.SSHConfig()
              with io.open(full_path, "rt", encoding="utf-8") as f:
                  ssh_config_instance.parse(f)
                  source = ssh_config_instance.lookup(self.host)
          else:
              source = {}
  
          if "proxycommand" in source:
              proxy = paramiko.ProxyCommand(source["proxycommand"])
          elif "ProxyCommand" in source:
              proxy = paramiko.ProxyCommand(source["ProxyCommand"])
          else:
              proxy = None
  
          # Only update 'hostname', 'sock', 'port', and 'username'
          # For 'port' and 'username' only update if using object defaults
          if connect_dict["port"] == 22:
              connect_dict["port"] = int(source.get("port", self.port))
          if connect_dict["username"] == "":
              connect_dict["username"] = source.get("user", self.username)
          if proxy:
              connect_dict["sock"] = proxy
          connect_dict["hostname"] = source.get("hostname", self.host)
  
          return connect_dict
docs: Update SSH connection parameters based on contents of SSH 'config' file.
  
          :param dict_arg: Dictionary of SSH connection parameters
          :type dict_arg: dict