Remote hosts (SSH)

Put a session's working directory on a remote host: host discovery, authentication order, and the jump-host configuration that is not yet supported.

A session's working directory can live on a remote host. Klaus reads your local SSH configuration to list available hosts, and can test connectivity, browse remote directories, and set a remote path as the working directory. When signing in requires typing a password or passphrase interactively, you still answer in the UI — Klaus never fills it in for you.

  • Klaus speaks the SSH protocol itself; it does not invoke the system ssh command. A remote working directory is an ssh://[user@]host[:port]/absolute-path string.
  • Host information comes from your own ~/.ssh/config (HostName / User / Port / IdentityFile; Include is expanded one level, and the first value seen wins).
  • Host fingerprints are handled as accept-new: an unseen host is recorded, and a changed fingerprint is refused outright.
  • Authentication order: ssh-agent → private key files (an encrypted key prompts you for its passphrase) → keyboard-interactive → password. When input is needed, the UI shows a dialog and can wait a few minutes for you; the password you type is used only for this authentication.
  • One authenticated connection per target is kept and reused, and each command opens a channel on it, so there is no re-authentication every time. Connections time out after 10 seconds.
  • ProxyJump / ProxyCommand are not supported yet — hitting one produces an explicit error instead of pretending the connection succeeded.
  • A remote root directory is not counted among the writable roots of the local sandbox: it is a path on the remote machine, which the local path gate has no jurisdiction over.