Remote SSH breaks after ~1 minute

Describe the Bug

Remote SSH breaks after ~1 minute

Steps to Reproduce

I can connect.
Then the connection drops. I get this error:
2025-07-21 14:46:35.868 [error] Error resolving SSH authority Failed to connect to Cursor code server. Ensure that your remote host ssh config has ‘AllowTcpForwarding yes’ in ‘/etc/ssh/sshd_config’. Please check the logs and try reinstalling the server.

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.2.4 (Universal)
VSCode Version: 1.99.3
Commit: a8e95743c5268be73767c46944a71f4465d05c90
Date: 2025-07-10T16:55:16.443Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Darwin arm64 24.5.0

Latest version of Cursor Remote SSH plugin

Does this stop you from using Cursor

Yes - Cursor is unusable

2 Likes

full error:

2025-07-21 14:46:29.112 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 1 of 3 This operation was aborted
2025-07-21 14:46:29.112 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:35019][7b7e2d5f-3dad-4db1-91fa-3638a8f58285] received connection request
2025-07-21 14:46:29.112 [info] [command][a9675047-d69b-4c94-a9a9-e44b5a5964f3] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-8d4a0ef8-7c03-4680-98fc-3323aa5b8d6c.sock"},"token":"5058cb78-e71e-4859-b195-1f3330493fd9","id":"a9675047-d69b-4c94-a9a9-e44b5a5964f3"}
2025-07-21 14:46:29.112 [info] (ssh_tunnel) stderr: debug1: Connection to port 57669 forwarding to socks port 0 requested.
debug1: channel 5: new dynamic-tcpip [dynamic-tcpip] (inactive timeout: 0)

2025-07-21 14:46:29.176 [info] (ssh_tunnel) stderr: debug1: channel 3: free: direct-tcpip: listening port 57669 for 127.0.0.1 port 35019, connect from 127.0.0.1 port 57673 to 127.0.0.1 port 57669, nchannels 6

2025-07-21 14:46:29.206 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:57669 -> 127.0.0.1:35019][7b7e2d5f-3dad-4db1-91fa-3638a8f58285] socks forwarding established
2025-07-21 14:46:29.311 [info] [command][a9675047-d69b-4c94-a9a9-e44b5a5964f3] Process exited with code 0
2025-07-21 14:46:29.311 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:57669 -> 127.0.0.1:35019][7b7e2d5f-3dad-4db1-91fa-3638a8f58285] socks connection closed
2025-07-21 14:46:29.311 [info] [command][a9675047-d69b-4c94-a9a9-e44b5a5964f3] Socket close event received
2025-07-21 14:46:29.419 [info] (ssh_tunnel) stderr: debug1: channel 5: free: direct-tcpip: listening port 57669 for 127.0.0.1 port 35019, connect from 127.0.0.1 port 57676 to 127.0.0.1 port 57669, nchannels 5

2025-07-21 14:46:30.116 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 2 of 3 This operation was aborted
2025-07-21 14:46:31.121 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 3 of 3 This operation was aborted
2025-07-21 14:46:31.121 [error] Could not re-establish SOCKS forwarding; re-establishing entire SSH connection Failed to connect to Cursor code server. Ensure that your remote host ssh config has 'AllowTcpForwarding yes' in '/etc/ssh/sshd_config'. Please check the logs and try reinstalling the server.
2025-07-21 14:46:33.863 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 1 of 3 This operation was aborted
2025-07-21 14:46:33.865 [info] [forwarding][code][127.0.0.1:57580 -> 127.0.0.1:39237][6fc2b2e3-da19-41c5-b42c-47c952cd039c] received connection request
2025-07-21 14:46:33.865 [info] (ssh_tunnel) stderr: debug1: Connection to port 57669 forwarding to socks port 0 requested.
debug1: channel 3: new dynamic-tcpip [dynamic-tcpip] (inactive timeout: 0)

2025-07-21 14:46:33.962 [info] [forwarding][code][127.0.0.1:57580 -> 127.0.0.1:57669 -> 127.0.0.1:39237][6fc2b2e3-da19-41c5-b42c-47c952cd039c] socks forwarding established
2025-07-21 14:46:34.866 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 2 of 3 This operation was aborted
2025-07-21 14:46:35.867 [error] Failed to connect to Cursor server at http://127.0.0.1:57580, attempt 3 of 3 This operation was aborted
2025-07-21 14:46:35.868 [error] Error resolving SSH authority Failed to connect to Cursor code server. Ensure that your remote host ssh config has 'AllowTcpForwarding yes' in '/etc/ssh/sshd_config'. Please check the logs and try reinstalling the server.
2025-07-21 14:47:29.315 [info] [remote-ssh] Pinging remote server on port 127.0.0.1:57581
2025-07-21 14:47:29.316 [info] [command][bd9c0efc-1906-46b9-af49-45ac75d58afc] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-8d4a0ef8-7c03-4680-98fc-3323aa5b8d6c.sock"},"token":"5058cb78-e71e-4859-b195-1f3330493fd9","id":"bd9c0efc-1906-46b9-af49-45ac75d58afc"}
2025-07-21 14:47:29.316 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:35019][3d822634-0301-4e12-85e0-28f873bfbda0] received connection request
2025-07-21 14:47:29.317 [info] (ssh_tunnel) stderr: debug1: Connection to port 57669 forwarding to socks port 0 requested.
debug1: channel 5: new dynamic-tcpip [dynamic-tcpip] (inactive timeout: 0)

2025-07-21 14:47:29.444 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:57669 -> 127.0.0.1:35019][3d822634-0301-4e12-85e0-28f873bfbda0] socks forwarding established
2025-07-21 14:47:29.552 [info] [command][bd9c0efc-1906-46b9-af49-45ac75d58afc] Process exited with code 0
2025-07-21 14:47:29.552 [info] [forwarding][multiplex][127.0.0.1:57581 -> 127.0.0.1:57669 -> 127.0.0.1:35019][3d822634-0301-4e12-85e0-28f873bfbda0] socks connection closed
2025-07-21 14:47:29.552 [info] [command][bd9c0efc-1906-46b9-af49-45ac75d58afc] Socket close event received
2025-07-21 14:47:29.650 [info] (ssh_tunnel) stderr: debug1: channel 5: free: direct-tcpip: listening port 57669 for 127.0.0.1 port 35019, connect from 127.0.0.1 port 57707 to 127.0.0.1 port 57669, nchannels 6


I also tried this on the latest cursor version, as well as manually downgrading to 1.24. Both are broken.

Hi @ErwannMillon, thank you for this bug report and your logs. We are looking into it.

This seems to only happen with a node that is using tailscale. But using VSCode w/ the VSCode Remote SSH extension works perfectly fine with the same node / ssh config.

Hi @ErwannMillon , we just released version 1.0.23 of the Remote SSH extension which should fix this issue. Earlier versions had a connection check that could cause an otherwise-working connection to fail under slow network conditions. Could you try upgrading to the latest version of the extension and see if that fixes this issue?

still getting the same issue with version 1.0.23

The issue may have to do with using remote ssh to a datacenter that is bad at hairpinning connections. But the VSCode Remote SSH extension works fine so the problem is def specific to the Cursor implementation

Could you share the full logs from the latest version of the extension?

When the connection drops, is it able to automatically reconnect, or does it force you to reload the window?

After the drop happens for the first time, the server seems to get permanently broken. It fails to auto reconnect, and even a reload is no longer able to connect. I need to pkill -f cursor-server && rm -rf ~/.cursor-server to be able to reconnect to the same machine after the first time the connection drops.

I can reliably induce the error by connecting to the server, opening a file, making a change and trying to save it.

Here are logs from the initial connection where the first drop occurs: 2025-07-25 17:22:28.422 [info] (ssh_tunnel) stderr: Authenticated to erwann-dev - Pastebin.com

Below are logs from trying to reconnect after first drop. It hangs forever in this state:


2025-07-25 17:12:47.837 [info] Server install command exit code:  0
2025-07-25 17:12:47.838 [info] Deleting local script /var/folders/4k/f9qpkhqs5pq1b04rvz5ttn5h0000gn/T/cursor_remote_install_20207.sh
2025-07-25 17:12:47.838 [info] [forwarding][code] creating new forwarding server
2025-07-25 17:12:47.838 [info] [forwarding][code] server listening on 127.0.0.1:55031
2025-07-25 17:12:47.838 [info] [forwarding][code] Set up server
2025-07-25 17:12:47.838 [info] [remote-ssh] codeListeningOn (remote=[object Object]; local=[object Object]) codeConnectionToken: 3d145e85-95f9-4c60-96a8-a12956bb3e8b
2025-07-25 17:12:47.838 [info] [forwarding][multiplex] creating new forwarding server
2025-07-25 17:12:47.838 [info] [forwarding][multiplex] server listening on 127.0.0.1:55032
2025-07-25 17:12:47.838 [info] [forwarding][multiplex] Set up server
2025-07-25 17:12:47.839 [info] [remote-ssh] multiplexListeningOn (remote=[object Object]; local=[object Object]) multiplexConnectionToken: 0b0aec80-3d62-4717-8c75-159cf01dca2a
2025-07-25 17:12:47.839 [info] [remote-ssh] Pinging remote server on port 127.0.0.1:55032
2025-07-25 17:12:47.840 [info] [remote-ssh] Resolved exec server. Socks port: 55023
2025-07-25 17:12:47.840 [info] [remote-ssh] Setting environment variable SSH_AUTH_SOCK=/tmp/cursor-remote-ssh-auth-sock-13af428f-5a1e-4ee5-b3df-b36a36ec968d.sock
2025-07-25 17:12:47.840 [info] Setting up 0 default forwarded ports
2025-07-25 17:12:47.840 [info] [remote-ssh] Resolved authority: {"host":"127.0.0.1","port":55031,"connectionToken":"3d145e85-95f9-4c60-96a8-a12956bb3e8b","extensionHostEnv":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-13af428f-5a1e-4ee5-b3df-b36a36ec968d.sock"}}. Socks port: 55023
2025-07-25 17:12:47.840 [info] (ssh_tunnel) stdout: Unlocking /tmp/cursor-remote-lock.6ca0869f6193ac0d40fa6ae74ed01260

2025-07-25 17:12:47.841 [info] [forwarding][multiplex][127.0.0.1:55032 -> 127.0.0.1:35313][9430c736-de21-4fba-8325-7febca9e16d3] received connection request
2025-07-25 17:12:47.842 [info] [command][b62643ac-41b9-460e-ac1d-0c396011411b] Sending command request: {"command":"echo","args":["1"],"env":{"SSH_AUTH_SOCK":"/tmp/cursor-remote-ssh-auth-sock-13af428f-5a1e-4ee5-b3df-b36a36ec968d.sock"},"token":"0b0aec80-3d62-4717-8c75-159cf01dca2a","id":"b62643ac-41b9-460e-ac1d-0c396011411b"}
2025-07-25 17:12:47.842 [info] (ssh_tunnel) stderr: debug1: Connection to port 55023 forwarding to socks port 0 requested.
debug1: channel 3: new dynamic-tcpip [dynamic-tcpip] (inactive timeout: 0)

2025-07-25 17:12:47.877 [info] [forwarding][code][127.0.0.1:55031 -> 127.0.0.1:44749][29555ce2-d705-4df0-95b6-066c6cb93a07] received connection request
2025-07-25 17:12:47.878 [info] (ssh_tunnel) stderr: debug1: Connection to port 55023 forwarding to socks port 0 requested.
debug1: channel 4: new dynamic-tcpip [dynamic-tcpip] (inactive timeout: 0)

2025-07-25 17:12:47.912 [info] [forwarding][multiplex][127.0.0.1:55032 -> 127.0.0.1:55023 -> 127.0.0.1:35313][9430c736-de21-4fba-8325-7febca9e16d3] socks forwarding established
2025-07-25 17:12:47.944 [info] [forwarding][code][127.0.0.1:55031 -> 127.0.0.1:55023 -> 127.0.0.1:44749][29555ce2-d705-4df0-95b6-066c6cb93a07] socks forwarding established
2025-07-25 17:12:47.987 [info] [command][b62643ac-41b9-460e-ac1d-0c396011411b] Process exited with code 0
2025-07-25 17:12:47.987 [info] [forwarding][multiplex][127.0.0.1:55032 -> 127.0.0.1:55023 -> 127.0.0.1:35313][9430c736-de21-4fba-8325-7febca9e16d3] socks connection closed
2025-07-25 17:12:47.991 [info] [command][b62643ac-41b9-460e-ac1d-0c396011411b] Socket close event received
2025-07-25 17:12:48.055 [info] (ssh_tunnel) stderr: debug1: channel 3: free: direct-tcpip: listening port 55023 for 127.0.0.1 port 35313, connect from 127.0.0.1 port 55034 to 127.0.0.1 port 55023, nchannels 5

Hi @ErwannMillon, thank you for sharing these. If you open a workspace containing only a few files (or no files at all), is the connection more reliable, or does it continue to crash after opening?

it is more reliable when openinng an empty dir. but even relatively small dirs (10s of files, few k lines of code) do crash consistently

Yeah. So when opening a completely empty dir, it never crashes. Now, on cursor 1.3.4, opening any dir and starting to open small python files causes a full application crash (

hi, is there any news on this or any way i can help debug? Our entire company is having this issue when working on our cluster, it is severely blocking.

Hi, exactly the same issue here. I was about to open a thread and saw this one. I’m using a remote docker devcontainer via SSH (Ubuntu 25.04 locally, Debian 12 remote, SSH extension version 1.0.23).

The impact for me is similar: I mainly work on remote machines and can’t use cursor at all there.

Update: Switching back to vscode, I’ve noticed a pylance warning for my repo that there would be too many files. Adding {"python.analysis.include": \["src/\*\*/\*"\]} to my .vscode/settings.json seems to have fixed my problem also with cursor.

See also github.com/microsoft/pylance-release/wiki/Opening-Large-Workspaces-in-VS-Code

Hi, I also faced this issue.

I removed every extensions related to SSH at Cursor IDE market place

and installed

curl -L "https://open-vsx.org/api/jeanp413/open-remote-ssh/0.0.44/file/jeanp413.open-remote-ssh-0.0.44.vsix" -o open-remote-ssh.vsix
# Install
cursor --install-extension open-remote-ssh.vsix

This solved all…..

Need to wait until official market places work well with it.

Hope this helps

Hi, is there any fix for these issues yet? I recently installed cursor on a new machine and started seeing these issues. Here’s a screen recording of what I’m seeing - my connection starts lagging and skips out for several seconds at a time. Cursor — Screen Studio. Every ~30-60 second it’ll break for ~5-10 seconds. This does not happen with vscode or plain ssh, and did not happen with old cursor.

The lagging issue is fixed in v1.4.5

Version 1.4.5 has failed to resolve the SSH issues. After opening multiple projects, Cursor Remote SSH remains painfully slow—folder navigation and file edits suffer from unbearable latency. Worse, every time you open a new project through the same SSH connection, you’re prompted for your password (something VS Code Remote SSH never does). The fact that each update makes this basic feature worse is absurd and catastrophic. If you can’t optimize the simplest yet most fundamental workflow, stop claiming superiority over VS Code and charging for it. In its current state, Cursor Remote SSH is a black hole that disrupts the entire workflow of anyone who relies on it.