问题描述
我想将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端口不支持ProxyJump和ProxyCommand指令,并且我们不能使用Cygwin或MinGW OpenSSH客户端,后者支持代理,但需要在其自身的Shell子系统中运行。这是相关的错误报告:https://youtrack.jetbrains.com/issue/IDEA-214679
我找到了解决方案。您需要安装最新版本的OpenSSH。为此,我做了以下动作:
-
使用PowerShell安装瓢包管理器(https://scoop.sh/)
$ Set-ExecutionPolicy RemoteSigned -scope CurrentUser
回答Y$ Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
-
安装OpenSSH
$ scoop install win32-openssh
通常,安装会修改环境变量%PATH%以添加类似
C:\Users\<username>\scoop\shims
的路径。否则,您必须添加它。 -
修改环境变量%PATH%以删除路径
C:\Windows\System32\OpenSSH
-
启用“ OpenSSH身份验证代理”服务 在键盘上按Windows + R
键入:
services.msc
,然后按Enter。双击“ OpenSSH身份验证代理”服务
选择“自动”启动类型,然后启动服务。
完成这些操作后,我能够从Windows cmd终端进行连接。我从PhpStorm进行了测试,它也可以工作。