Warp documentation
  • Getting Started
    • Quickstart Guide
    • What is Warp?
    • Supported shells
    • Migrate to Warp
    • Keyboard Shortcuts
    • Changelog
  • Agents
    • Warp AI
      • Agent Mode
  • Active AI
  • Generate
  • Voice
  • Terminal
    • Appearance
      • Themes
      • Custom Themes
      • Prompt
      • Input Position
      • Text, Fonts, & Cursor
      • Size, Opacity, & Blurring
      • Pane Dimming & Focus
      • Blocks Behavior
      • Tabs Behavior
      • App Icons
    • Blocks
      • Block Basics
      • Block Actions
      • Block Sharing
      • Block Find
      • Block Filtering
      • Background Blocks
      • Sticky Command Header
    • Modern Text Editing
      • Alias Expansion
      • Command Inspector
      • Syntax & Error Highlighting
      • Vim Keybindings
    • Command Entry
      • Command Corrections
      • Command Search
      • Command History
      • Synchronized Inputs
      • YAML Workflows
    • Command Completions
      • Completions
      • Autosuggestions
    • Command Palette
    • Session Management
      • Launch Configurations
      • Session Navigation
      • Session Restoration
    • Window Management
      • Global Hotkey
      • Tabs
      • Split Panes
    • Warpify
      • Subshells
      • SSH
    • More Features
      • Accessibility
      • Files, Links, & Scripts
      • Markdown Viewer
      • Working Directory
      • Smart-Select
      • Full-screen Apps
      • Notifications & Audible Bell
      • Settings Sync (Beta)
      • Quit Warning
      • URI Scheme
      • Linux
    • Comparisons
      • Performance
      • Terminal features
  • Integrations
  • Knowledge & Collaboration
    • Warp Drive
      • Notebooks
      • Workflows
      • Prompts
      • Environment Variables
      • Warp Drive on the Web
    • Model Context Protocol
    • Rules
    • Teams
    • Session Sharing
  • Privacy
    • Privacy
    • Secret Redaction
    • Network Log
  • Community
    • Refer a Friend & Earn Rewards
    • Warp Preview & Alpha Program
  • Support & Billing
    • Sending Feedback & Logs
    • Plans & Pricing
    • Updating Warp
    • Using Warp Offline
    • Logging out & Uninstalling
    • Known Issues
    • Troubleshooting Login Issues
    • Open Source Licenses
Powered by GitBook
On this page
  • Implementation
  • Troubleshooting SSH
  • channel 2: open failed: connect failed: open failed
  • SSH Wrapper fails

Was this helpful?

  1. Terminal
  2. Warpify

SSH

SSH wrapper that enables Warp features in remote sessions.

PreviousSubshellsNextMore Features

Last updated 4 months ago

Was this helpful?

This implementation of SSH will be deprecated in the near future, replaced with a new and improved implementation.

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

(as of May 2024):

  • The SSH Wrapper only supports bashor zsh shells in remote sessions.

  • If you're using a different shell, you'll want to use command ssh directly (see below for more details).

  • For zsh, xxd is required to bootstrap warp.

  • For Windows, is required to bootstrap the SSH Wrapper.

  • RemoteCommand causes the ssh wrapper to fail.

If you're using zsh on the remote host, Warp creates a temp folder to act as the ZDOTDIR during the bootstrapping process and removes it when the shell is set up.

Implementation

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

  • Warp takes over the prompt which enables us to build a modern input editor.

  • Warp 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 warp_ssh_helper in zsh, type warp_ssh_helper in bash.

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

Troubleshooting SSH

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 Warp'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.

SSH Wrapper fails

If the subshell workaround helps, we recommend you disable the SSH Wrapper in Settings > Features.You'll need to start a new session before a change is reflected or try invoking the SSH binary directly withcommand ssh.

Warp for ssh show entries in ~/.ssh/config and ~/.ssh/known_hosts

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

Completions
known issues with SSH Wrapper
subshell
Limitations of SSH
Cygwin
Tmux is not currently supported.
SSH
Warpify SSH Demo
SSH
Command SSH subshell workaround