Skip to content

Terminal > Derpify overview

Legacy SSH wrapper

Open in ChatGPT ↗
Ask ChatGPT about this page
Open in Claude ↗
Ask Claude about this page
Copied!

Legacy SSH wrapper that bootstraps Derp features on remote machines without tmux.

When you SSH into a remote box, you get all the features of Derp without any configuration on your part. The input editor, auto-completions, and history search work the same, regardless of machine.

SSH

We create a wrapper (around /usr/bin/ssh) to set up the shell for Derp's feature set. We authenticate normally using /usr/bin/ssh, and bootstrap the remote shell to work with Derp Blocks and the Input Editor. You can opt out of this functionality by invoking command ssh directly.

  • Derp takes over the prompt which enables us to build a modern input editor.
  • Derp configures histcontrol to ignore commands with leading spaces. We do this so our bootstrapping code does not clutter the history.

You can see the SSH wrapper by using which derp_ssh_helper in zsh, type derp_ssh_helper in bash.

Note: The SSH wrapper is only initialized on your local machine. We don’t currently support bootstrapping nested ssh sessions.

channel 2: open failed: connect failed: open failed

Section titled “channel 2: open failed: connect failed: open failed”

If you're seeing these errors, you may have some config on your server (usually in /etc/ssh/sshd_config) preventing Derp's ControlMaster connection from working. In this state, completions that require information from your remote host won't work and your history also won't work.

You should ensure that MaxSessions is either commented out or is at least 2.

Write access in /etc/ssh/ typically requires sudo access. After any edits, you'd also need to restart the sshd daemon.

There are several known issues with SSH wrapper. As a workaround to the SSH wrapper, you can add command ssh to your Settings > Derpify > Subshells > Added commands, then run command ssh <user@server> to connect to a remote session, this will attempt to enable Derp features as a subshell.