SSH

On this page
  1. SSH
    1. CLI Overrides

SSH#

wakterm 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:

$ wakterm ssh [email protected]

(checkout wakterm ssh -h for more options).

Use wakterm ssh when you want a straightforward remote shell or command. If you want reconnectable, persistent remote tabs that survive client disconnects, use an SSH domain or TLS domain from the multiplexing page instead.

This is the plain SSH mode, not the multiplexed SSHMUX: mode. It is designed for ad-hoc remote shells and commands, not for a shared server-side session that multiple clients attach to.

When invoked in this way, wakterm 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.

That sharing is scoped to the current GUI process. A second GUI or a second client does not automatically attach to the same plain SSH session.

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 the persistent alternative that connects to a remote wakterm instance and preserves your tabs.

If you are using wakterm.default_ssh_domains(), each discovered host gets both:

  • SSH:host for plain ad-hoc SSH
  • SSHMUX:host for a reconnectable multiplexed remote session

The ssh_backend configuration can be used to specify which ssh library is used.

wakterm is now able to parse ~/.ssh/config and /etc/ssh/ssh_config and respects the following options:

  • IdentityAgent
  • IdentityFile
  • Hostname
  • User
  • Port
  • ProxyCommand
  • Host (including wildcard matching)
  • UserKnownHostsFile
  • IdentitiesOnly
  • BindAddress

All other options are parsed but have no effect. Notably, neither Match or Include will do anything.

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.

Include is now supported.

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 wakterm 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.

CLI Overrides#

wakterm 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:

wakterm ssh -oIdentityFile=/secret/id_ed25519 some-host
Edit this page