JetBrains(IntelliJ、PhpStorm、WebStorm…)具有SSH密钥的私有git存储库
我的新Web服务器需要使用RSA 2048密钥进行身份验证 因此,我生成了一个密钥,将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
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 用户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论坛上也会问到同样的问题: