Cursor 3.14.27 Remote SSH fails with Windows OpenSSH on Windows 11 (exit 255 / broken pipe)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

After Cursor automatically updated from 3.14.7 to 3.14.27, Remote SSH stopped working with Windows OpenSSH.

The SSH process exits with code 255 before the connection is established. The stderr appears as mojibake, but corresponds to a Windows broken/nonexistent pipe error.

Steps to Reproduce

  1. Use Windows 11 with the built-in OpenSSH client.
  2. Configure a working SSH host in %USERPROFILE%\.ssh\config.
  3. Open the host using Cursor Remote SSH.
  4. Cursor executes:

type "<cursor install script>" | "C:\Windows\System32\OpenSSH\ssh.exe" -T -D <port> <host> bash --login -c bash

Expected Behavior

Cursor should establish the SSH connection and start the remote server.

Actual behavior

SSH process exited (code 255) before connection was established

Operating System

Windows 10/11

Version Information

Cursor: 3.14.27
Commit: 047548b00c1a079373d74d00183f32510a4a41e0
Build: Stable
Remote SSH extension: anysphere.remote-ssh 1.1.13
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the detailed report. The versions, command, and log really help. What you’re describing doesn’t look like a problem with your setup: ssh works from the terminal and other clients, and only the combo type "..." | ssh.exe is failing.

To figure out exactly where the pipe breaks, please send the full Remote SSH log:

  • Ctrl+Shift+POutput: Show Output Channels... → pick Remote - SSH (or New Output ViewRemote SSH). Copy everything starting from the connection attempt. That output includes decoded stderr, not garbled text.

A couple quick questions too:

  1. When you updated Cursor to 3.14.27, did the anysphere.remote-ssh extension version also change, or is it still 1.1.13?
  2. Do you have remote.SSH.path set in settings? If yes, does the path include any spaces?
  3. Does VS Code Remote-SSH connect to the same host fine right now?

As a temporary workaround, you can roll back anysphere.remote-ssh to the last working version and turn off auto-updates for it Extensions → gear icon on the extension → Install Specific Version, then disable Auto Update. That should get you unblocked while we investigate.

I’ll reply in the thread once we have updates or find the cause.

@HanChangHun can u run ssh -vv <host-name> in your normal powershell terminal and share what you are seeing.

Hi, sorry for the trouble and for taking up your time. @deanrie , @tarun

I tested this again today with Windows OpenSSH 9.5p2, and it is now working normally in Cursor. I can no longer reproduce the earlier exit-code-255 failure.

Previously, I was seeing the following error:

2026-08-05 14:32:08.122 [info] Resolving ssh remote authority '<host-alias>' (Unparsed 'ssh-remote+<redacted-authority>') (attempt #1)
2026-08-05 14:32:08.133 [info] SSH askpass server listening on port <local-port>
2026-08-05 14:32:08.134 [info] Using configured platform linux for remote host <host-alias>
2026-08-05 14:32:08.136 [info] Using askpass script: c:\Users\<local-user>\.cursor\extensions\anysphere.remote-ssh-1.1.13\dist\scripts\launchSSHAskpass.bat with javascript file c:\Users\<local-user>\.cursor\extensions\anysphere.remote-ssh-1.1.13\dist\scripts\sshAskClient.js. Askpass address: <local-port>
2026-08-05 14:32:08.155 [info] Launching SSH server via shell with command: type "C:\Users\<local-user>\AppData\Local\Temp\cursor_remote_install_<uuid>.sh" | ssh -T -D <local-port> <host-alias> bash --login -c bash
2026-08-05 14:32:08.155 [info] Establishing SSH connection: type "C:\Users\<local-user>\AppData\Local\Temp\cursor_remote_install_<uuid>.sh" | ssh -T -D <local-port> <host-alias> bash --login -c bash
2026-08-05 14:32:08.155 [info] Started installation script. Waiting for it to finish...
2026-08-05 14:32:08.155 [info] Waiting for SSH handshake (timeout: 120s). Install timeout: 30s.
2026-08-05 14:32:08.227 [info] (ssh_tunnel) stderr: ���μ������� ���� �������� ������ �߽��ϴ�.
2026-08-05 14:32:08.249 [error] SSH process exited (code 255) before connection was established (after 93ms)
2026-08-05 14:32:08.249 [error] Pre-connection stderr: ���μ������� ���� �������� ������ �߽��ϴ�.
2026-08-05 14:32:08.667 [error] Error terminating process: Error: Command failed: taskkill /T /F /PID <pid>
2026-08-05 14:32:08.667 [error] Error installing server: Failed to connect to the remote SSH host. Please check the logs for more details.
2026-08-05 14:32:08.667 [info] Deleting local script C:\Users\<local-user>\AppData\Local\Temp\cursor_remote_install_<uuid>.sh
2026-08-05 14:32:08.676 [error] Error resolving SSH authority Failed to connect to the remote SSH host. Please check the logs for more details.
[Windows-OpenSSH-9.5p2-ssh-vv-sanitized-2026-08-06.txt|attachment](upload://vxsO7Nbfbs9WounRwa3QrkDgrTX.txt) (10.9 KB)

The versions are still:

  • Cursor 3.14.27
  • anysphere.remote-ssh 1.1.13
  • OpenSSH_for_Windows_9.5p2

I also ran a fresh ssh -vv test. Public-key authentication succeeded, and the remote command completed with exit status 0. I have attached the sanitized full log.

Since none of these versions changed, I cannot identify a specific fix. The earlier failure may have been transient or state-dependent.

Sorry again for the extra trouble, and thank you for taking the time to investigate. If the issue happens again, I will immediately capture the full Remote - SSH output and update this thread.

The issue for me is the update from 3.14.7 to 3.14.27 changed the default behavior of how the cursor server is downloaded. In 3.14.7 it was downloading locally and copying it over SSH to the remote but in 3.14.27 it is downloading it on the remote and the firewall rules on my remote machine block download.cursor.com. Is there a way to force the previous behavior?

I was retrying over and over and now it connects may be because cursor server was already there on the remote. Will need to try to remote on to a new EC2 and see how that goes.

@HanChangHun glad it worked. Since the versions didn’t change, it was most likely a transient or state-dependent issue. If it happens again, please grab the full Remote - SSH output channel from the connection attempt, especially the lines Establishing SSH connection: and Pre-connection stderr:, and post it here so we can dig in.

@Rusticdeity this is separate from the original report. What you’re describing is expected Remote-SSH behavior. By default, the server first tries to download directly on the remote host, and only if that fails it falls back to downloading locally and then copying over SSH. That’s why you’re hitting the firewall on download.cursor.com.

To force the old behavior download locally and copy to the remote, try adding this to settings.json:

"remote.SSH.localServerDownload": "always"

Values are auto default, tries remote first, always always local download plus copy, and off. After changing it, fully reconnect the SSH session.

You mentioned the connection works now. The server is probably already cached on the host. On a fresh EC2 instance, test with "always" and let me know if it bypasses the firewall block. If not, send the full Remote - SSH output channel from the install attempt and we’ll see which step it fails on.