Help: Rmote ssh not working but VS code works

I use Mac to remotely connect to my Windows computer. After a cursor update about two months ago, I couldn’t connect anymore, but VSCode Remote SSH is still functioning normally.

Remote SSH Log:

[info] Resolving ssh remote authority 'window' (Unparsed 'ssh-remote+7b22686f73744e616d65223a2277696e646f77227d') (attempt #1)
[info] SSH askpass server listening on /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor-ssh-L5ufWy/socket.sock
[debug] hostname: window, remote platform map: {}
[debug] hostname: window, remote server install map: {}
[debug] hostname: window, server port range map: {}
[info] Using askpass script: /Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/scripts/launchSSHAskpass.sh with javascript file /Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/scripts/sshAskClient.js. Askpass handle: /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor-ssh-L5ufWy/socket.sock
[info] Launching SSH server via shell with command: cat "/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor_remote_install_998663b1-3da3-4fc8-a339-28242bf33f25.sh" | ssh -T -D 52343 window bash --login -c bash
[info] Establishing SSH connection: cat "/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor_remote_install_998663b1-3da3-4fc8-a339-28242bf33f25.sh" | ssh -T -D 52343 window bash --login -c bash
[info] Started installation script. Waiting for it to finish...
[info] Waiting for SSH handshake (timeout: 120s). Install timeout: 30s.
[info] (ssh_tunnel) stderr: ** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html

[info] Askpass server received request: POST /
[info] Askpass server received request body: {"request":"[email protected]'s password: "}
[info] Pausing timeout; waiting for askpass response
[info] Received SSH askpass request: [email protected]'s password: 
[info] Resuming timeout; askpass response received
[info] (ssh_tunnel) stdout: Configuring Cursor Server on Remote
Using TMP_DIR: /tmp
6c991adf932c025cf6723212: start
exitCode==1==
nodeExecutable====
multiplexListeningOn====
multiplexConnectionToken====
codeListeningOn====
errorMessage==Platform not supported: MINGW64_NT-10.0-19045==
isFatalError==true==
codeConnectionToken====
detectedPlatform====
arch====
SSH_AUTH_SOCK====
DISPLAY==needs-to-be-defined==
6c991adf932c025cf6723212: end

[info] SSH connection established after 7929ms (first stdout received)
[info] Pre-connection stderr: ** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html

[info] Server install command exit code:  1
[error] Error installing server: [o [RemoteSSHError]: Couldn't install Cursor Server, install script returned non-zero exit status: Platform not supported: MINGW64_NT-10.0-19045
	at t.installCodeServer (/Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/main.js:4:199823)
	at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
	at async /Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/main.js:4:475806] {
  disconnectReason: 'platform_unsupported'
}
[info] Deleting local script /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor_remote_install_998663b1-3da3-4fc8-a339-28242bf33f25.sh
[error] Error resolving SSH authority [o [RemoteSSHError]: Couldn't install Cursor Server, install script returned non-zero exit status: Platform not supported: MINGW64_NT-10.0-19045
	at t.installCodeServer (/Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/main.js:4:199823)
	at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
	at async /Users/tal/.cursor/extensions/anysphere.remote-ssh-1.0.49/dist/main.js:4:475806] {
  disconnectReason: 'platform_unsupported'
}

The error Platform not supported: MINGW64_NT-10.0-19045 means your Windows machine’s SSH server is using Git Bash (MINGW64) as its default shell. When Cursor’s install script runs on the remote host, it doesn’t recognize MINGW64_NT as a supported platform, which is why VS Code works but Cursor doesn’t.

Fix: Change your Windows SSH server’s default shell to PowerShell. Run this in an elevated PowerShell window on your Windows machine:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

Then restart the OpenSSH Server service (Restart-Service sshd) and try connecting from Cursor again.

I’ve also flagged this as a bug on our side. The install script should handle the MINGW64 environment, so you shouldn’t need to change your shell configuration just for Cursor.

Let me know if this resolves it!

Thank you for your reply.

However, the method you mentioned I had already tried the day before yesterday, and I can be certain that the default shell of my Windows computer is PowerShell.

(base) PS C:\Windows\system32> New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force


DefaultShell : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE
PSChildName  : OpenSSH
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry



(base) PS C:\Windows\system32> Restart-Service sshd

I don’t know why, even with cursor remote ssh, it still defaults to using git bash as the terminal for the connection. Check out this connection log:

[info] Launching SSH server via shell with command: cat "/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor_remote_install_aea3ed1d-b91b-45bf-bea6-2f1540c179af.sh" | ssh -T -D 50702 window bash --login -c bash
[info] Establishing SSH connection: cat "/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/cursor_remote_install_aea3ed1d-b91b-45bf-bea6-2f1540c179af.sh" | ssh -T -D 50702 window bash --login -c bash

Here is the content of my .ssh/config file:

Host window
  HostName 10.25.197.54
  User Tal

The same .ssh/config execution, the SSH connection log in VSCode:

[10:15:49.920] Log Level: 2
[10:15:49.938] VS Code version: 1.120.0
[10:15:49.938] Remote-SSH version: [email protected]
[10:15:49.938] darwin arm64
[10:15:49.944] SSH Resolver called for "ssh-remote+window", attempt 1
[10:15:49.948] remote.SSH.useLocalServer = true
[10:15:49.949] remote.SSH.useExecServer = true
[10:15:49.949] remote.SSH.bindHost = {}
[10:15:49.949] remote.SSH.path = 
[10:15:49.949] remote.SSH.configFile = 
[10:15:49.949] remote.SSH.useFlock = true
[10:15:49.949] remote.SSH.lockfilesInTmp = false
[10:15:49.949] remote.SSH.localServerDownload = auto
[10:15:49.949] remote.SSH.remoteServerListenOnSocket = false
[10:15:49.949] remote.SSH.defaultExtensions = []
[10:15:49.949] remote.SSH.defaultExtensionsIfInstalledLocally = []
[10:15:49.950] remote.SSH.loglevel = 2
[10:15:49.950] remote.SSH.enableDynamicForwarding = true
[10:15:49.950] remote.SSH.enableRemoteCommand = false
[10:15:49.950] remote.SSH.serverPickPortsFromRange = {}
[10:15:49.950] remote.SSH.serverInstallPath = {}
[10:15:49.952] remote.SSH.permitPtyAllocation = false
[10:15:49.952] remote.SSH.preferredLocalPortRange = undefined
[10:15:49.952] remote.SSH.useCurlAndWgetConfigurationFiles = false
[10:15:49.952] remote.SSH.experimental.chat = true
[10:15:49.952] remote.SSH.experimental.enhancedSessionLogs = true
[10:15:49.952] remote.SSH.httpProxy = {"*":""}
[10:15:49.952] remote.SSH.httpsProxy = {"*":""}
[10:15:49.959] SSH Resolver called for host: window
[10:15:49.959] Setting up SSH remote "window"
[10:15:49.998] Acquiring local install lock: /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/vscode-remote-ssh-a172b7dd-install.lock
[10:15:49.999] Looking for existing server data file at /Users/tal/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-a172b7dd-0958016b2af9f09bb4257e0df4a95e2f90590f9f-0.122.0-es/data.json
[10:15:49.999] No existing data file
[10:15:50.000] Using commit id "0958016b2af9f09bb4257e0df4a95e2f90590f9f" and quality "stable" for server
[10:15:50.000] Extensions to install: 
[10:15:50.004] Install and start server if needed
[10:15:50.006] PATH: /usr/bin:/bin:/usr/sbin:/sbin
[10:15:50.006] Checking ssh with "ssh -V"
[10:15:50.018] > OpenSSH_10.2p1, LibreSSL 3.3.6

[10:15:50.020] askpass server listening on /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/vscode-ssh-askpass-014ca1e25992b1603186f9e1c06afe0527d5a96a.sock
[10:15:50.024] Spawning local server with {"serverId":1,"ipcHandlePath":"/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/vscode-ssh-askpass-7236b00d3d160a5217144927f3e31e19cd44c6d9.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","53449","-o","ConnectTimeout=15","window"],"serverDataFolderName":".vscode-server","dataFilePath":"/Users/tal/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-a172b7dd-0958016b2af9f09bb4257e0df4a95e2f90590f9f-0.122.0-es/data.json"}
[10:15:50.024] Local server env: {"SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.DHe0OiBFx6/Listeners","SHELL":"/bin/zsh","DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/tal/.vscode/extensions/ms-vscode-remote.remote-ssh-0.122.0/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"","VSCODE_SSH_ASKPASS_MAIN":"/Users/tal/.vscode/extensions/ms-vscode-remote.remote-ssh-0.122.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/vscode-ssh-askpass-014ca1e25992b1603186f9e1c06afe0527d5a96a.sock"}
[10:15:50.025] Spawned 23965
[10:15:50.026] Using connect timeout of 17 seconds
[10:15:50.143] > local-server-1> Running ssh connection command: ssh -v -T -D 53449 -o ConnectTimeout=15 window
[10:15:50.145] > local-server-1> Spawned ssh, pid=23966
[10:15:50.215] stderr> debug1: Server host key: ssh-ed25519 SHA256:y0aZojffAdwQPm4psN1L3jii102MvQISKf6V1hc4M2M
[10:15:50.219] stderr> ** WARNING: connection is not using a post-quantum key exchange algorithm.
[10:15:50.219] stderr> ** This session may be vulnerable to "store now, decrypt later" attacks.
[10:15:50.219] stderr> ** The server may need to be upgraded. See https://openssh.com/pq.html
[10:15:50.476] Got askpass request: {"request":" [email protected]'s password: "}
[10:15:50.476] Showing password prompt
[10:15:50.477] Listening for interwindow password on /var/folders/8r/nsmw59yn28g2v2vlvx4t_m5m0000gn/T/vscode-ssh-askpass-a857b5807366820fd322d650be80e0bd66109e66.sock
[10:15:50.477] Writing password prompt to globalState
[10:15:56.309] Got password response
[10:15:56.310] Interactor gave response: *********
[10:15:56.310] Cleaning up other-window auth server
[10:15:56.312] Using connect timeout of 17 seconds
[10:15:56.362] stderr> Authenticated to 10.25.197.54 ([10.25.197.54]:22) using "password".
[10:15:56.500] > Windows PowerShell
> ��Ȩ���� (C) Microsoft Corporation����������Ȩ����
> 
> �����µĿ�ƽ̨ PowerShell https://aka.ms/pscore6
[10:15:59.011] stderr> ���ظ��˼�ϵͳ�����ļ����� 2399 ���롣
[10:15:59.021] > (base) 
[10:15:59.028] > PS C:\Users\Tal> 
[10:15:59.217] > echo 'ready: 7837554d0acc'
[10:15:59.220] > ready: 7837554d0acc
[10:15:59.221] > 
[10:15:59.237] > (base) 
[10:15:59.237] > PS C:\Users\Tal> uname -rsv
[10:15:59.360] Platform: windows
[10:15:59.360] Remote command length: 6676/8192 characters
[10:15:59.366] > (base) PS C:\Users\Tal> powershell -NoProfile
[10:15:59.444] > Windows PowerShell
> ��Ȩ���� (C) Microsoft Corporation����������Ȩ����
> 
> �����µĿ�ƽ̨ PowerShell https://aka.ms/pscore6
[10:15:59.568] > PS C:\Users\Tal> 

I have the same problem here. I am using a macbook and my remote machine is a linux server, but cursor tries to execute a windows command, log:

2026-06-03 10:50:35.863 [info] SSH askpass server listening on /var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor-ssh-n7bi89/socket.sock
2026-06-03 10:50:35.864 [info] Using configured platform linux for remote host remote
2026-06-03 10:50:35.865 [info] Using askpass script: /Users/artefact/.cursor/extensions/anysphere.remote-ssh-1.0.53/dist/scripts/launchSSHAskpass.sh with javascript file /Users/artefact/.cursor/extensions/anysphere.remote-ssh-1.0.53/dist/scripts/sshAskClient.js. Askpass handle: /var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor-ssh-n7bi89/socket.sock
2026-06-03 10:50:35.867 [info] Launching SSH server via shell with command: cat "/var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor_remote_install_3f8e485b-b0ec-40b4-a626-b1d10b6fbe00.sh" | C:\Program Files\Git\usr\bin -T -D 53625 remote bash --login -c bash
2026-06-03 10:50:35.867 [info] Started installation script. Waiting for it to finish...
2026-06-03 10:50:35.867 [info] Waiting for SSH handshake (timeout: 120s). Install timeout: 30s.
2026-06-03 10:50:36.297 [info] (ssh_tunnel) stdout: cat "/var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor_remote_install_3f8e485b-b0ec-40b4-a626-b1d10b6fbe00.sh" | C:\Program Files\Git\usr\bin -T -D 53625 remote bash --login -c bash; echo "Exit code: $?. Finished running command."

2026-06-03 10:50:36.297 [info] SSH connection established after 430ms (first stdout received)
2026-06-03 10:50:36.316 [info] (ssh_tunnel) stdout: e[?1034hsh-3.2$ cat "/var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor_remote_install_3f8e485b-b0ec-40b4-a626-b1d10b6fbe00.sh" | C:\Program Files\Git\usr\bin -T -D 53625 remote bash --login -c bash; echo "Exit code: $?. Finished running command."
sh: C:Program: command not found
Exit code: 127. Finished running command.
sh-3.2$ 
2026-06-03 10:50:36.317 [error] Error installing server: Failed to connect to the remote SSH host. Please check the logs for more details.
2026-06-03 10:50:36.317 [info] Deleting local script /var/folders/l3/bcnjmzv92r99x2sd47z703bh0000gn/T/cursor_remote_install_3f8e485b-b0ec-40b4-a626-b1d10b6fbe00.sh
2026-06-03 10:50:36.319 [error] Error resolving SSH authority Failed to connect to the remote SSH host. Please check the logs for more details.

It has been over half a month since then, but the official still hasn’t fixed it. However, after looking at the source code, I have solved this problem. Just configure it in the setting.json of VSCode as follows.

"remote.SSH.remotePlatform": {
    "window": "windows",
    "your ssh ip": "windows"
},

The main part of this code is: "window": "windows"

Then restart the cursor.
PS: Remember to ensure that the cursors on both sides are up-to-date.

@kingmusi Setting remote.SSH.remotePlatform is the right workaround here. I should have caught this earlier: even with PowerShell as the default SSH shell, Cursor’s remote command explicitly invokes bash, which still runs through Git Bash when it’s installed. The remotePlatform setting bypasses the automatic detection entirely.

I’ve updated the tracking bug with this - the underlying fix should either handle the MINGW64_NT platform string or avoid hardcoding bash as the remote command on Windows hosts.

@Hongpu_Zhu your error is a different issue from this thread. In your log, Cursor is trying to use C:\Program Files\Git\usr\bin as the SSH binary on your Mac:

cat "..." | C:\Program Files\Git\usr\bin -T -D 53625 remote bash --login -c bash

That’s a Windows path, which won’t work on macOS. Could you check Cursor Settings > Remote > SSH: Path (or search for remote.SSH.path in settings) and clear it if it’s set to a Windows path? If you sync settings between a Windows and Mac machine, that could be the source.

Since this is a separate issue, could you create a new thread with your logs? That way our team can track it properly. Include:

  1. Your full Remote SSH log

  2. Whether you use Settings Sync between machines

  3. The output of which ssh in your Mac terminal