JetBrains(IntelliJ、PhpStorm、WebStorm…)具有SSH密钥的私有git存储库

JetBrains(IntelliJ、PhpStorm、WebStorm…)具有SSH密钥的私有git存储库,git,intellij-idea,ssh,phpstorm,jetbrains-ide,Git,Intellij Idea,Ssh,Phpstorm,Jetbrains Ide,我的新Web服务器需要使用RSA 2048密钥进行身份验证 因此,我生成了一个密钥,将ir\u rsa和id\u rsa.pub文件放在我的主文件夹~/.ssh(Windows 10)中 但是当我使用cvs注释(用于pull或push)时,我会得到一个错误: 错误日志是(内置SSH可执行文件): 15:14:14.657:[MyProject]git-c core.quotepath=false获取原点 --进度--prune java.io.IOException:在连接到mywebhost

我的新Web服务器需要使用RSA 2048密钥进行身份验证

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

但是当我使用cvs注释(用于pull或push)时,我会得到一个错误:

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

15:14:14.657:[MyProject]git-c core.quotepath=false获取原点 --进度--prune java.io.IOException:在连接到mywebhost.fr:22时出现问题 com.trilead.ssh2.Connection.connect(Connection.java:791)位于 com.trilead.ssh2.Connection.connect(Connection.java:577)位于 org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171)位于 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) 在java.lang.Thread.run(Thread.java:745)致命:无法读取 远程存储库。请确保您拥有正确的访问权限 并且存储库存在

错误日志是(将“设置>版本控制>git>SSH可执行文件”改为“本机”):

15:13:50.031:[MyProject]git-c core.quotepath=false获取原点 --进度--删除权限被拒绝(公钥)。致命:无法从远程存储库读取。请确保你有正确的答案 访问权限和存储库存在

如果我在终端中使用Git命令,pull或push命令工作正常:

如何使用PhpStorm的VCS按钮?

  • 我试图将
    Settings>Version Control>git>SSH可执行文件设置为
    “本地人”:同样的问题
  • 我试图安装putty实用程序,运行“Pageant”服务并导入我的 私钥:同样的问题
  • 我试图运行
    ssh add
    :同样的问题

  • 我试图配置
    ~/.config
    文件:同样的问题
主机myHost.fr
主机名myHost.fr 用户myloginuser 标识文件C:\Users\username.ssh\id\u rsa

我的Git版本是:2.10.2.windows.1(从下载)

我的操作系统是Windows10


[编辑]解决方案: 感谢Dmitry Smirnov,我找到了解决方案:

C:\Program Files\Git\cmd
文件夹中,您将找到文件
start ssh pageant.cmd

在启动之前,有必要创建一个环境变量:

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

(我试过Putty的Pagent和Git Bash的ssh代理,但都没有成功)

IntelliJ内置的ssh可执行文件目前不支持强安全密钥:

此外,您的密钥受密码短语保护,这就是本机SSH无法工作的原因。IDE不是终端,因此无法处理git发出的密码短语提示

作为一种解决方法,您可以将密钥加载到ssh代理,因此从命令提示符执行
git pull
,不会提示您输入密码短语,而是使用本机ssh。

(仅供参考)PhpStorm论坛上也会问到同样的问题: