SSH Support

The usual SSH support in VSCode is licensed by Microsoft, so we have implemented our own just for Windsurf. It does require you to have OpenSSH installed, but otherwise has minimal dependencies, and should “just work” like you’re used to.

This extension has worked great for our internal development, but there are some known caveats and bugs:

  • We currently only support SSHing into Linux-based remote hosts, with x64 architectures.

  • The usual Microsoft “Remote - SSH” extension (and the open-remote-ssh extension) will not work—please do not install them, as they conflict with our support.

  • We don’t have all the features of the Microsoft SSH extension right now. We mostly just support the important thing: connecting to a host. If you have feature requests, let us know!

  • Connecting to a remote host via SSH then accessing a devcontainer on that remote host won’t work like it does in VSCode. (We’re working on it!) For now, if you want to do this, we recommend instead manually setting up an SSH daemon inside your devcontainer. Here is the set-up which we’ve found to work, but please be careful to make sure it’s right for your use-case.

    1. Inside the devcontainer, run this once (running multiple times may mess up your sshd_config):
    sudo -s -- <<HERE
    sed -i '/SSO SSH Config START/Q' /etc/ssh/sshd_config
    echo "Port 2222" >> /etc/ssh/sshd_config
    ssh-keygen -A
    HERE
    
    1. Inside the devcontainer, run this in a terminal you keep alive (e.g. via tmux):
    sudo /usr/sbin/sshd -D
    
    1. Then just connect to your remote host via SSH in windsurf, but using the port 2222.
  • SSH agent-forwarding is on by default, and will use Windsurf’s latest connection to that host. If you’re having trouble with it, try reloading the window to refresh the connection.

  • On Windows, you’ll see some cmd.exe windows when it asks for your password. This is expected—we’ll get rid of them soon.

  • If you have issues, please first make sure that you can ssh into your remote host using regular ssh in a terminal. If the problem persists, include the output from the Output > Remote SSH (Windsurf) tab in any bug reports!

Dev Containers

Windsurf also supports dev containers! If you would like to run a development container locally on a Linux machine, you can use the following three commands:

  1. Open Folder in Container
    • Open a new workspace with a specified devcontainer.json file
  2. Reopen in Container
    • Reopen the current workspace in a new container, specifying a devcontainer.json file to configure the container.
  3. Attach to Running Container
    • If you already have a development container running, you can attach a remote server to the container and connect your current workspace to it.

Notes

  • SSH + Dev Containers is not currently supported in Windsurf, but we plan to support it in the future.
  • Only Linux-based x86 architectures are supported at the moment.

WSL

Coming soon!

Extension Marketplace

You can change the marketplace you use to download extensions from. To do this, go to View -> Extensions, click the “Change in Settings” link, and modify the settings accordingly.

Learn more about available options here.