PhpStorm SSH / SFTP cygwin

PhpStorm SSH / SFTP cygwin

我想将我的 cygwin 配置用于 SSH 或 SFTP 连接,但不起作用。

我的配置文件“config”在目录C:\cygwin64\home\<username>\.ssh.中这个配置文件定义了一个SSH代理跳转和发送一些环境变量。此配置文件在 cygwin 中工作正常,可以在 SSH 或 SFTP 中连接。

在 PhpStorm 设置中,我将 Tools > Terminal 中的 shell 路径指定为 C:\cygwin64\bin\bash.exe --login -i。所有本地终端都可以很好地使用 cygwin。但是 ssh 连接不使用我的配置文件。我尝试在 C:\Users\<username>\.ssh 目录中复制配置,但这不起作用。

你能帮帮我吗?

通常,创建指向密钥实际位置的 %USERPROFILE%/.ssh/config 文件(使用有效的 Windows 路径)应该会有所帮助。但是 PhpStorm 不支持其中的 ProxyJump 和 ProxyCommand 指令,因为 OpenSSH 客户端的 Windows 端口不支持它,我们不能使用支持代理但需要 运行 的 Cygwin 或 MinGW OpenSSH 客户端自己的 shell 子系统。这是一个相关的错误报告:https://youtrack.jetbrains.com/issue/IDEA-214679

我找到了解决办法。您需要安装最新版本的 OpenSSH。为此,我执行了以下操作:

  1. 使用 PowerShell 安装 scoop 包管理器 (https://scoop.sh/)

    $ Set-ExecutionPolicy RemoteSigned -scope CurrentUser 答案是

    $ Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

  2. 正在安装 OpenSSH

    $ scoop install win32-openssh

    通常安装会修改环境变量 %PATH% 以添加类似于 C:\Users\<username>\scoop\shims 的路径。否则你必须添加它。

  3. 修改环境变量%PATH%去掉路径C:\Windows\System32\OpenSSH

  4. 启用“OpenSSH 身份验证代理”服务 在键盘上按 Windows + R

    键入:services.msc 并按 Enter。

    双击“OpenSSH 身份验证代理”服务

    Select“自动”启动类型并启动服务。

完成这些操作后,我可以从 Windows cmd 终端连接。我从 PhpStorm 测试过,它也能正常工作。