IntelliJ新建SSH配置启动报错java.io.IOException: Cannot run program "connect.exe": CreateProcess error=2的解决方法咨询
我碰到过好几次这个报错,大概率是代理配置或者Git相关的环境问题在搞鬼,给你几个一步步排查的方案:
检查IntelliJ的代理设置
有时候全局或SSH专属的代理配置会触发对connect.exe的调用,但路径没匹配上。先去File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,看看是不是开启了自动代理或者继承系统代理(比如Use proxy configuration from native system),如果你的SSH连接不需要代理,直接切换到No proxy试试。
另外别忘了检查SSH配置的单独代理:打开File > Settings > Tools > SSH Configurations,选中出问题的配置,点击Advanced Settings,看看有没有勾选Use proxy,如果有且你不需要代理,直接取消勾选;如果确实需要代理,确认代理类型对应的配置是否正确。确认Git的connect.exe存在并加入PATH
connect.exe通常是Git for Windows自带的,默认路径是C:\Program Files\Git\mingw64\bin\connect.exe或者C:\Program Files\Git\usr\bin\connect.exe。先去这个路径确认文件是否存在:- 如果文件存在,把这个路径添加到系统环境变量PATH中,然后重启IntelliJ(IntelliJ需要重新读取PATH)。
- 如果没装Git,先安装Git for Windows,安装过程中它会自动把相关路径加入PATH。
手动在IntelliJ配置文件中指定connect.exe路径
虽然你说找不到可视化设置选项,但可以通过修改配置文件强制指定:- 找到IntelliJ的配置目录,Windows下一般是
C:\Users\<你的用户名>\.IntelliJIdea<版本号>\config(比如.IntelliJIdea2023.2)。 - 打开目录下的
idea.properties文件,添加一行:
(注意路径用斜杠ssh.connect.executable.path=C:/Program Files/Git/mingw64/bin/connect.exe/或者双反斜杠\\,根据你的实际路径调整) - 保存文件后重启IntelliJ。
- 找到IntelliJ的配置目录,Windows下一般是
对比正常配置排查差异
把你能正常工作的SSH配置和这个新配置做对比,看看是不是新配置多了什么参数(比如自定义命令行参数)、用了不同的认证方式?甚至可以把正常配置的内容复制到新配置里替换,测试是否能正常连接,排除配置内容本身的问题。清除IntelliJ缓存重置状态
有时候缓存异常也会导致这种奇怪的问题:
打开File > Invalidate Caches...,勾选Clear file system cache and local history,点击Invalidate and Restart,重启后再测试SSH配置。
如果以上方法都不行,建议用命令行测试SSH连接:打开CMD或PowerShell,执行ssh -v <你的SSH主机地址>,看输出日志里有没有提到connect.exe的相关错误,这样能判断是IntelliJ的问题还是系统环境本身的问题。
内容的提问来源于stack exchange,提问作者Lore

