docs/ssh.md
wezterm uses an embedded ssh library to provide an integrated SSH client. The client can be used to make ad-hoc SSH connections to remote hosts by invoking the client like this:
$ wezterm ssh [email protected]
(checkout wezterm ssh -h for more options).
When invoked in this way, wezterm may prompt you for SSH authentication and once a connection is established, open a new terminal window with your requested command, or your shell if you didn't specify one.
Creating new tabs or panes will each create a new channel in your existing session so you won't need to re-authenticate for additional tabs that you create.
SSH sessions created in this way are non-persistent and all associated tabs will die if your network connection is interrupted.
Take a look at the multiplexing section for an alternative configuration that connects to a remote wezterm instance and preserves your tabs.
The ssh_backend configuration can be used to specify which ssh library is used.
{{since('20210404-112810-b63a949d')}}
wezterm is now able to parse ~/.ssh/config and /etc/ssh/ssh_config
and respects the following options:
IdentityAgentIdentityFileHostnameUserPortProxyCommandHost (including wildcard matching)UserKnownHostsFileIdentitiesOnlyBindAddressAll other options are parsed but have no effect. Notably, neither Match or
Include will do anything.
{{since('20210502-154244-3f7122cb:')}}
Match is now recognized but currently supports only single-phase (final,
canonical are not supported) configuration parsing for Host and
LocalUser. Exec based matches are recognized but not supported.
{{since('20210814-124438-54e29167:')}}
Include is now supported.
{{since('nightly')}}
ProxyUseFDpass is now supported. (But not on Microsoft Windows).
ServerAliveInterval is now supported by the libssh backend. Setting it to
a non-zero value will cause wezterm to send an IGNORE packet on that interval.
ServerAliveCountMax is NOT supported by this backend. This keepalive
mechanism will not actively track the number of keepalives or disconnect the
session; the packets are sent in a fire-and-forget manner as a least effort way
to keep some traffic flowing on the connection to persuade intervening network
hardware to keep the session alive.
wezterm ssh CLI allows overriding config settings via the command line. This
example shows how to specify the private key to use when connecting to
some-host:
wezterm ssh -oIdentityFile=/secret/id_ed25519 some-host