Skip to content

The ssh connector

The ssh connector is the default transport: a deploy runs over SSH on a real remote machine through asyncssh, mirroring the baseline's @ssh connector. It is selected per inventory entry with connection.connector — or simply by omitting the key, since "ssh" is the default:

inventory = [
    {
        "host": "web1",
        "connection": {
            "address": "192.168.0.240",
            "username": "kjarvis",
            "key_path": "~/.ssh/id_ed25519",
        },
    },
]

Connection options

Unlike the docker connector's closed key set, the ssh connection mapping keeps asyncssh's own key names and forwards a curated set of asyncssh.connect options verbatim. Forwarding is presence-based, so an explicit None is meaningful (e.g. known_hosts=None skips host key checking, client_keys=None loads no default identities). Path-valued options (key_path, client_keys, agent_path, config, identities, known_hosts) have ~ expanded before they reach asyncssh.

Option Purpose
connector "ssh" (the default) selects this connector; may be omitted
address / host / hostname The SSH target address — required to connect
username / user Login name
port TCP port to connect to
password Password authentication
key_path Single client private key (shorthand for client_keys)
client_keys Client private keys (list); None loads no default identities
passphrase Passphrase for encrypted keys
identities Certificates/identities to present
agent_path SSH agent socket (None uses the default)
agent_forwarding Forward the agent to the remote host
config OpenSSH config file path(s), or True for the default
known_hosts Known-hosts file path(s); None skips host key checking
proxy_command Jump-host ProxyCommand string, run on the controller
tunnel Bastion tunnel, as "[user@]host[:port]" or a connection
kex_algs Key-exchange algorithm pinning for compliance or legacy servers
encryption_algs Cipher algorithm pinning
mac_algs MAC algorithm pinning
server_host_key_algs Host-key algorithm pinning
preferred_auth Auth method order, e.g. ["publickey", "password"]
login_timeout Auth window in seconds
keepalive_interval Seconds between SSH-level keepalive probes
keepalive_count_max Unanswered keepalives before the connection is dropped
tcp_keepalive Enable TCP-level keepalives
asyncssh_connect_kwargs Passthrough mapping for any other asyncssh.connect option, merged last