Cursor 通过 SSH 连接 Linux 失败的排查与修复
在 Cursor 里用 Remote-SSH 连 Linux 服务器时,表面看起来是同一个 ssh [email protected],结果却不一样:MobaXterm 能连,Cursor 不行;加上 -F /dev/null 反而又能连上。这个现象其实已经把范围缩得很小了,问题不在服务器,也不太像纯网络故障,更像是客户端本地配置或本地安全策略在作怪。
现象
- MobaXterm 中可以正常连接:
ssh [email protected] - Cursor 中连接失败:
ssh [email protected] - 使用
-F /dev/null可以连接:ssh -F /dev/null [email protected]
排查过程
先看 ~/.ssh/config。
cat ~/.ssh/config
内容本身看起来没什么异常:
Host song123 HostName 10.12.15.111 User song Port 22
接着在 Cursor 的 PowerShell 里把 SSH 日志打满:
ssh -vvv [email protected]
关键报错是:
debug3: connectex - ERROR ConnectEx() :10013
debug1: connect to address 10.12.15.111 port 22: Permission denied
ssh: connect to host 10.12.15.111 port 22: Permission denied
这里的 10013 对应 WSAEACCES,也就是权限被拒绝。它不是'连不上',而是 Windows 拦住了这个出站连接。
再验证一下网络本身:
Test-NetConnection 10.12.15.111 -Port 22
结果是 TcpTestSucceeded : True。
到这一步,思路就比较明确了:端口通,服务器也在,Cursor 用的那个 SSH 客户端被本机环境限制住了。
MobaXterm 和 Cursor 走的不是同一套东西。MobaXterm 用的是自己的 SSH 客户端,跑在 Cygwin 环境里;Cursor 默认调用的是 Windows 自带的 OpenSSH,路径一般是:
C:\Windows\System32\OpenSSH\ssh.exe
如果安全软件或防火墙对这个 ssh.exe 做了限制,就会出现这种'别的工具能连,Cursor 不能连'的情况。
再往下看,MobaXterm 这边还有一个容易忽略的坑:它自己的系统级 SSH 配置文件也坏了。
/etc/ssh_config
