2017-03-04 201 views
2

我的新Web服务器需要使用RSA 2048密钥进行身份验证。JetBrains(IntelliJ,PhpStorm,WebStorm ...)使用SSH密钥的私人git存储库

因此,我生成了一个密钥,我将ir_rsaid_rsa.pub文件放在我的主文件夹~/.ssh(Windows 10)中。

但是当我使用CVS的注释(拉或推),我得到一个错误:

enter image description here

错误日志(带有内置SSH可执行文件):

15:14:14.657:[MyProject] git -c core.quotepath = false获取原点 --progress --prune java.io.IOException:连接到mywebhost.fr:22在 com时出现问题。 trilead.ssh2.Conn ection.connect(Connection.java:791)at com.trilead.ssh2.Connection.connect(Connection.java:577)at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171)at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)导致: java.io.IOException:密钥交换未完成,连接已关闭 。在 com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:92) 在 com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:230) 在com.trilead.ssh2.Connection .connect(Connection.java:743)... 3更多 引起:java.io.IOException:无法协商,提议不匹配 。在 com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:413) 在 com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:754) 在 com.trilead.ssh2。 transport.TransportManager $ 1.run(TransportManager.java:469) at java.lang.Thread.run(Thread.java:745)致命错误:无法从 读取远程存储库。请确保您拥有正确的访问权限 并存在存储库。

错误日志(用 “设置>版本控制>的git> SSH可执行” 到 “本地”):

15:13:50.031:[MyProject的]的git -c芯.quotepath = false获取原点 --progress --prune权限被拒绝(publickey)。致命:无法从远程存储库读取。请确保您拥有正确的 访问权限并存在存储库。

如果我使用终端的Git命令拉或推命令的工作好:

enter image description here

我应该怎么做才能使用PhpStorm的VCS按钮?

  • 我试图设置Settings > Version Control > git > SSH Executable到 “原生”:同样的问题
  • 我试图安装腻子实用,运行“佳丽”服务,并导入我的 私钥:同样的问题
  • 我试着运行ssh-add:同样的问题

enter image description here

  • 我试图配置~/.config文件:同样的问题

主机myHost.fr
主机名myHost.fr 用户myloginuser IdentityFile C:\用户\ username.ssh \ id_rsa

我的Git版本是:2.10.2.windows.1(从https://git-scm.com/download/win下载)

我的操作系统是Windows 10


[编辑]解决方案: 谢谢德米特里横溢,我找到了解决办法:

C:\Program Files\Git\cmd文件夹,你会发现文件start-ssh-pageant.cmd

推出之前,有必要创建一个环境变量:

Name: SSH_AUTH_SOCK 
Value: C:\Users\username\.ssh\.ssh-pageant-username 

(我试图与PAGENT从腻子和SSH代理从Git的Bash的,但它没有工作)

+0

*(仅供参考)*与PhpStorm论坛上的问题相同:https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000114504-Git-SHH-Private-Key-PAssPhrase – LazyOne

回答

3

内置的IntelliJ在SSH可执行文件目前不支持强大的安全密钥:https://youtrack.jetbrains.com/issue/IDEA-140196

此外,您的密钥受密码保护,这就是为什么本机SSH不起作用。 IDE不是终端,因此无法处理由git发出的密码提示

作为解决方法,您可以将密钥加载到ssh-agent,因此从命令提示符执行git pull时不会提示您输入密码,并使用本地SSH。