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

2024-04-15

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

因此我生成了一个密钥,我将ir_rsa and id_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 命令,则 pull 或 push 命令效果很好:

我应该如何使用 PhpStorm 的 VCS 按钮?

  • 我尝试设置Settings > Version Control > git > SSH Executable到 “本地”:同样的问题
  • 我尝试安装 putty 实用程序,运行“Pageant”服务并导入我的 私钥:同样的问题
  • 我试着跑ssh-add: 同样的问题
  • 我尝试配置~/.config文件:同样的问题

托管 myHost.fr
主机名 myHost.fr 用户 myloginuser IdentityFile C:\Users\用户名.ssh\id_rsa

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

我的操作系统是 Windows 10


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

In the 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,但没有成功)


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JetBrains(IntelliJ、PhpStorm、WebStorm ...)带有 SSH 密钥的私有 git 存储库 的相关文章

  • 如何在intelliJ idea中创建java包的jar

    我需要创建一个包含模块内部包中已编译类的 jar 我有一个 jar 文件 它实际上是模块内部的一个包 我需要重新创建它 我可以创建整个模块的 jar 但无法创建包的 jar 文件 我怎样才能按照想法做到这一点 Intellij IDEA 2
  • 如何忽略Git中以数字开头的文件?

    在某个文件夹中 我有名为foo jpg bar png等等 我想将它们保留在版本控制中 除了那些命名为1 baz png 2 zaz jpg等 因为它们实际上是生成的 我应该添加什么条目 gitignore 正则表达式如 0 9 似乎不起作
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • 列出其他人(即不是我)所做的提交?

    是否有一种标准方法可以列出 git 存储库中其他人 即不是我自己 所做的所有提交 I tried git log not author username 但看起来 not仅适用于修订版 的联机帮助页git log似乎没有提供反转谓词的方法
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • 如何在 git 中删除 subversion 远程?

    我有一个最初使用 git svn 创建的 git 存储库 现在我有一个推送到的 git 服务器 但 svn 存储库已丢失 我可以删除 svn 远程吗 如何 您可以编辑 git config文件并删除与要删除的遥控器关联的部分 您要删除的行可
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • 合并git中2个不同分支中具有相同名称的2个文件

    我目前有一个名为test1在一个名为branch1创建自master另一个文件也命名为test1在一个名为branch2也创建自master 如果我合并 master 中的两个分支 这两个文件中编写的代码会发生什么 As 阿米尔回答了 ht
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • 清理 IntelliJ 中构建的 Play 框架

    我有一个拼写错误conf routes文件导致 Play Framework 生成错误命名的类 重建项目并运行Invalidate Caches并没有解决 IntelliJ 中的问题 当我手动运行时重新生成了不正确的类文件play clea
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • Git:man 命令不起作用

    在 Git Bash 中 他们给了我一个error用于返回 man command man git bash man command not found 我的 Git 版本 git version git version 2 18 0 wi
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • IntelliJ IDEA 13:新的 Scala SBT 项目尚未生成 src 目录结构

    我按照 Jetbrains 网站上的入门视频设置 IntelliJ IDEA 13 1 Community Edition 以与 Scala 配合使用 Scala 插件 v0 36 431 已安装 当我使用向导创建一个新的 Scala SB
  • Java Sqlite Gradle

    我对 gradle 和 java 还很陌生 我有一个使用 sqlite 的项目 它通过 intellij idea 运行良好 但我无法从终端运行它 它会抛出异常 java lang ClassNotFoundException org sq
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 多个 scala 库导致 intellij 出错?

    我正在使用 intellij 14 和 scala 2 11 6 使用 homebrew 安装并使用符号链接 ln s usr local Cellar scala 2 11 6 libexec src usr local Cellar s
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位

随机推荐

  • pymssql:执行许多值错误 - 需要一个简单类型、元组或列表

    grpidx data for i in range 0 len data1 grpidx data append data1 loc i price data1 loc i id cur executemany insert into g
  • 摇动:发出是否需要重建任何东西的信号

    我使用 shake 构建了一堆静态网页 然后我必须使用 sftp 将其上传到远程主机 目前 cronjob 运行 git pull get possibly updated sources my shake system lftp uplo
  • org.w3c.dom.Document 转换为字符串,无需 javax.xml.transform

    我花了一段时间在 Google 上寻找一种将 org w3c dom Document 转换为整个 DOM 树的字符串表示形式的方法 这样我就可以将对象保存到文件系统中 然而 我发现的所有解决方案都使用 javax xml transfor
  • KubernetesExternalName服务在DNS中不可见

    我正在尝试将单个数据库实例公开为两个 Kubernetes 命名空间中的服务 Kubernetes 版本 1 11 3 在 Ubuntu 16 04 1 上运行 数据库服务是可见的并且在默认命名空间中工作 我在非默认命名空间中创建了一个Ex
  • 打造 ecto 独一无二的领域

    如何制作一个字段unique在体外 我以为它和Ruby中的活动记录一样 但似乎不是 你想使用唯一约束 3 http hexdocs pm ecto Ecto Changeset html unique constraint 3 这与 Act
  • 如果 MySQL 中的行不存在,则添加到该行

    当向表中添加一行时 但首先检查它是否存在哪种处理方法最有效 是否是查询是否存在的情况 如果不存在则插入 或者重复使用 或者简单地替换 如果该行不存在 这会起作用 吗 Thanks 我认为这是 MySQL 中最快的方法 REPLACE int
  • 不可变类型:公共最终字段与 getter

    我需要一个小的容器类来存储一些应该不可变的字符串 由于 String 本身是不可变类型 所以我想到了类似的东西 public final class Immu public final String foo public final Str
  • 从 airodump-ng 读取实时输出

    当我执行命令 airodump ng mon0 gt gt output txt 时 output txt 为空 我需要能够运行 airodump ng mon0 并在大约 5 秒后停止该命令 然后才能访问其输出 有什么想法我应该从哪里开始
  • 如何以良好的格式结果格式化 python 列表

    我有很多列表 如下所示 通过打印data并将其与字符串连接起来check str如下最后一条语句所示 需要帮助以在字符串连接后更好地格式化列表值 如预期所示 print data printing lists in this variabl
  • 图像上的文本没有绝对位置

    我正在尝试在页面中间的图像上放置一些文本 我看到一个这样的例子 img src image png p p p p
  • 在 docker 容器上保存配置

    我创建了 2 个 docker 容器 并尝试在 ubuntu debian 上安装一些应用程序和一些软件包 如 mc ping traceroute 但每当我退出容器时 我都会丢失其中的所有内容 是否有任何 docker 命令可以保存我的配
  • 从具有特定模式的 txt 文件创建 Pandas DataFrame

    我需要基于以下结构的文本文件创建一个 Pandas DataFrame Alabama edit Auburn Auburn University 1 Florence University of North Alabama Jackson
  • .NET Framework 全局程序集缓存在哪里?

    我安装了 VS2010 和 NET 4 0 然后编译了一个程序集并使用可用的 exe 运行 gacutil ProgramFiles Microsoft SDKs Windows v7 0A Bin NETFX 4 0 Tools 可执行文
  • 如何在 R 中重新格式化表格?

    我加载了一个这样的表 V1 V2 V3 pat1 1 2 pat1 3 1 pat1 4 2 pat2 3 3 pat3 1 4 pat3 2 3 我需要将其格式化为如下所示 其中 V1 表示行 V2 表示列 V3 中的值 1 2 3 4
  • Android 中未接来电的广播接收器

    有谁知道未接来电的意图是什么 实际上 我想在我的应用程序中发送有关未接来电和来电的短信 您需要使用 ContentObserver public class MissedCallsContentObserver extends Conten
  • fork 后调试子进程(配置了 follow-fork-mode 子进程)

    我正在开发一个应用程序 父级分叉子级来处理某些任务 我遇到一个问题 我已将 gdb 配置为 follow fork mode 子级 但在 fork 后 到达断点后 它发送 SIGTRAP 但子级以某种方式终止并向父级发送 SIGCHLD 我
  • 数据表行切换选项

    我的问题 我正在开发一个与 DataTableJS 相关的项目 我需要一个行分组功能 它与分组行分开 只是我想在下面的切换中显示相关的表行内容城市名 我到底在寻找什么 我的演示代码 document ready function var t
  • Swagger 无法生成 HTTP“PATCH”的文档

    我已遵循以下内容博客条目 http kingsfleet blogspot co uk 2014 02 transparent patch support in jax rs 20 html http Transparent 20PATCH
  • 在 htaccess 文件中使用公用文件夹时的多种语言

    我有这个 htacces文件我很喜欢它 但是如何向它添加多语言 所以它明白localhost en 不是文件或文件夹 现在它使用公共文件夹作为 根 所以localhost public 如果我想这样做 那太好了 我仍然使用公共文件夹作为根目
  • JetBrains(IntelliJ、PhpStorm、WebStorm ...)带有 SSH 密钥的私有 git 存储库

    我的新 Web 服务器需要使用 RSA 2048 密钥进行身份验证 因此我生成了一个密钥 我将ir rsa and id rsa pub我的主文件夹中的文件 ssh Windows 10 但是当我使用 cvs 注释 用于拉或推 时 我收到错