【问题标题】:JetBrains (IntelliJ, PhpStorm, WebStorm ...) private git repository with SSH keyJetBrains (IntelliJ, PhpStorm, WebStorm ...) 带有 SSH 密钥的私有 git 存储库
【发布时间】:2017-03-04 18:28:59
【问题描述】:

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

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

但是当我使用 cvs 注释(用于拉取或推送)时,我得到一个错误:

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

15:14:14.657: [MyProject] git -c core.quotepath=false 获取来源 --progress --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 获取来源 --progress --prune 权限被拒绝(公钥)。致命:无法从远程存储库中读取。请确保您拥有正确的 访问权限和存储库存在。

如果我在终端中使用 Git 命令,拉或推命令效果很好:

如何使用 PhpStorm 的 VCS 按钮?

  • 我尝试将Settings > Version Control > git > SSH Executable 设置为 “本机”:同样的问题
  • 我尝试安装 putty 实用程序,运行“Pageant”服务并导入我的 私钥:同样的问题
  • 我尝试运行ssh-add:同样的问题

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

托管 myHost.fr
主机名 myHost.fr 用户 myloginuser 身份文件 C:\Users\username.ssh\id_rsa

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

我的操作系统是 Windows 10


[编辑]解决方案: 感谢 Dmitriy 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-agent,但没有成功)

【问题讨论】:

标签: git intellij-idea ssh phpstorm jetbrains-ide


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-04-23
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2021-12-09
    • 2018-07-22
    • 2014-02-16
    • 2019-05-10
    相关资源
    最近更新 更多