anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: fizzadar/pyinfra
Issue: SSH config ignored

**Describe the bug**
It seems that the `~/.ssh/config` file is parsed, but not taken into account when connecting to hosts.

**To Reproduce**
Have a `~/.ssh/config` file entry like this:
```
some
      Hostname some.example.com
```

(Now `$ ssh some` works just as well as `$ ssh some.example.com`)

```
$ pyinfra some deploy.py
--> Loading config...
--> Loading inventory...

--> Connecting to hosts...
    [deb] Could not resolve hostname (some)
--> pyinfra error: No hosts remaining!
```

**Expected behavior**
I would expect this to try to connect to the resolved FQDN `some.example.com` and not `some`.

**Meta**
+ Include output of `pyinfra --support`.
```
    System: Darwin
      Platform: macOS-10.15.3-x86_64-i386-64bit
      Release: 19.3.0
      Machine: x86_64
    pyinfra: v0.14.4
    Executable: /usr/local/bin/pyinfra
    Python: 3.8.3 (CPython, Clang 11.0.3 (clang-1103.0.32.59))
```

+ How was pyinfra installed (source/pip)? pip
+ Include pyinfra-debug.log (if one was created)
+ Consider including output with `-vv` and `--debug`.


Changed files:
pyinfra/api/connectors/sshuserclient/client.py

diff --git a/pyinfra/api/connectors/sshuserclient/client.py b/pyinfra/api/connectors/sshuserclient/client.py
index 1c44d430..c2e34287 100644
--- a/pyinfra/api/connectors/sshuserclient/client.py
+++ b/pyinfra/api/connectors/sshuserclient/client.py
@@ -35,7 +35,7 @@ class SSHClient(ParamikoClient):
     def connect(self, hostname, **kwargs):
         self.hostname, self.config = self.parse_config(hostname)
         self.config.update(kwargs)
-        super(SSHClient, self).connect(hostname, **self.config)
+        super(SSHClient, self).connect(self.hostname, **self.config)
 
     def gateway(self, target, target_port):
         transport = self.get_transport()
Repository: fizzadar/pyinfra
Issue: Fix: Apt deb_package fact and don't assume version

Don't assume version exists @ https://github.com/Fizzadar/pyinfra/blob/develop/pyinfra/modules/apt.py#L165

And fix the regex here: https://github.com/Fizzadar/pyinfra/blob/develop/pyinfra/facts/apt.py#L98 - eg for ES `Version: 1:5.2.0-1`

Changed files:
pyinfra/modules/apt.py, pyinfra/facts/apt.py

diff --git a/pyinfra/facts/apt.py b/pyinfra/facts/apt.py
index 5861de54..d005fd1d 100644
--- a/pyinfra/facts/apt.py
+++ b/pyinfra/facts/apt.py
@@ -95,7 +95,7 @@ class DebPackage(FactBase):
 
     _regexes = {
         'name': r'^Package: ([a-zA-Z0-9\\-]+)$',
-        'version': r'^Version: ([0-9\\.\\-]+)$',
+        'version': r'^Version: ([0-9\\:\\.\\-]+)$',
     }
 
     def command(self, name):
diff --git a/pyinfra/modules/apt.py b/pyinfra/modules/apt.py
index 5a48e21c..0084594c 100644
--- a/pyinfra/modules/apt.py
+++ b/pyinfra/modules/apt.py
@@ -162,7 +162,7 @@ def deb(state, host, source, present=True, force=False):
 
         if (
             info['name'] in current_packages
-            and info['version'] in current_packages[info['name']]
+            and info.get('version') in current_packages[info['name']]
         ):
             exists = True