【问题标题】:IntelliJ IDEA git Permission denied (publickey)IntelliJ IDEA git 权限被拒绝(公钥)
【发布时间】:2016-11-01 12:19:39
【问题描述】:

我在 Windows 10 上的 IntelliJ IDEA 上使用 git 时遇到了一个奇怪的问题。 如果我想访问 GitLab 上的远程仓库,我总是会得到 Permission denied (publickey)。 我在这里或通过谷歌找到的一切都没有解决问题。 我试过了:

  1. 将 ssh 可执行文件设置为 Native
  2. 将我的公钥从 Putty 转换为 ssh-keygen 样式
  3. 删除 known_hosts

我还尝试使用Git Bash 访问存储库,它可以正常工作。 另一个有趣的事实是,在删除 known_hosts 后,我得到“主机密钥验证失败”。我不得不使用 Git Bash 重新创建 known_hosts 条目,之后我再次收到 Permission denied 错误。不知何故,我没有被要求提供任何用户输入。

【问题讨论】:

  • 同样的事情也发生在我身上。
  • 你能准确地发布你在 git bash 中执行的命令吗?
  • 你的钥匙在哪里?
  • 对不起,这太久远了,我不记得命令了。位于 C:/Users//.ssh/git 中的密钥,我使用主机的配置条目告诉 ssh 使用该密钥。我可以告诉你,它现在可以在带有 Intellij 2018.3.3 的 Ubuntu 18.04 下运行。我不再使用 Windows。

标签: windows git intellij-idea ssh


【解决方案1】:

我在从 Intellij 2019.2 连接 bitbucket 云时遇到了这个问题,幸好通过以下步骤解决了这个问题。请注意,这些步骤将在您成功生成 ssh-public 密钥并将其添加到您的 bitbucket/github/gitlab 配置文件后执行。

  1. 打开 Git-SCM ssh_config 文件存在于 Git-SCM 安装目录中。它在 Windows(64 位)中的默认位置是 C:\Program Files\Git\etc\ssh\李>
  2. 将以下行添加到 ssh_config 中
Host *your-gitlab-or-github-or-bitbucket-hostname*
IdentityFile *your-ssh-rsa-privatekey-file-with-absolute-path*

例如

Host bitbucket.org
IdentityFile C:/Users/Sahil/.ssh/id_rsa

来源: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004124959-IntelliJ-2019-1-3-Can-t-access-git-using-SSH-keys

【讨论】:

  • 即使在 Windows 上,您也可以将 IdentityFile 配置为 ~/.ssh/id_rsa,它等于 %USERPROFILE%\.ssh\id_rsa要创建 rsa 文件,运行 PuttyGen,打开您的私钥,从菜单中使用转换 - 导出 OpenSSH 密钥并将其保存为 %USERPROFILE%\.ssh\id_rsa
  • 可以确认这适用于 Win10 和 Intellij IDEA 2020.3。甚至不需要重新启动 IDE。可能需要管理员权限才能编辑文件。
  • 就是这样!只花了半个小时试图弄清楚这一点。到处都有这么多过时的答案。不要忘记指向openssh格式的key,否则会报格式。
【解决方案2】:

自从 OP 以来已经很长时间了,但这是我在执行基础上的解决方案:

  1. 您需要打开提示并设置 ENVVAR GIT_SSH_COMMAND
  2. 您需要从同一提示打开 IntelliJ。

例子:

> set GIT_SSH_COMMAND=ssh -i C:\\path\\to\\not\\default\\key
> idea

此外,not-default-key 的路径应使用 ~ 而不是 %userprofile% 或使用 / 的类 unix 路径。

【讨论】:

    【解决方案3】:

    更新 IDEA 2021.2.3

    Sahil 的答案中的错误已得到修复,对于一个或多个主机的一键的最常见情况,您的 ssh 配置文件中的正确条目不需要 Christian 的解决方案。可以在in Maddes comprehensive answer on superuser 找到复杂配置的其他选项,例如同一台或多台主机的多个密钥。

    ssh-agent 和 ssh-add 之间的任何不一致都会导致某些事情有效而某些事情无效。

    例如,我运行了 Windows OpenSSH 代理,但我的路径首先指向了适用于 Windows 的 Git ssh-add。鉴于那里有许多 ssh 实现,许多此类失败都是可能的,所以知道你知道事情是从哪里运行的。

    让 ssh 在 IDEA 中工作...


    Windows 版 Git

    1. 为 Windows 安装 Git。我把它放在 C:\Git 中,因为作为没有升级安装的标准用户,我无法写信给C:\Program Files
    2. Control Panel | User Accounts | Change my environment variables 中,将 Git usr\bin 文件夹添加到已经存在的 cmd 文件夹条目之后的路径(例如,C:\Git\usr\bin 用于我的安装)。
    3. 取消设置环境变量 HOME -- 在这个版本的 IDEA 中它仍然会破坏 ssh。
    4. 在 Windows cmd.exe 控制台中,运行 start-ssh-agent.cmd 以启动代理
    5. Settings | SSH Configurations | Authentication type: 的IDEA 中将其设置为Key pair OpenSSH or PuTTY 并测试您的连接。然后,稍作改动并测试Commit and push...

    Windows OpenSSH

    1. Control Panel | User Accounts | Change my environment variables 中添加C:\Windows\System32\OpenSSH 到您的路径。 确保路径中没有其他 ssh 实现在此之前!
    2. Task Manager | Services(或任何其他方式)启动 OpenSSH 代理
    3. 将您的 IDEA SSH Configuration 设置为上面的 #5

    请记住,在 Windows 上,IDEA 中的 ssh 使用标准 Windows 命令行控制台 (cmd.exe) 中可用的环境。如果 git 操作在那里工作,那么通过上述步骤,它们将在 IntelliJ 中工作。

    【讨论】:

    • 第 5 步是我在 Linux 上使用 PyCharm 2020.3.3 的关键(ho ho)
    【解决方案4】:

    我遇到了同样的问题,虽然它确实与公钥有关,但我的问题与 WSL2/Linux 和 windows .ssh 文件夹有关。我的密钥在我的 WSL2/linux 文件夹系统中,但 intelliJ 在我的 Windows 文件夹系统中查找。

    我将我的 rsa 密钥从 WSL2 复制到 Windows,它自动运行。事实上,我试图通过从 Windows 文件夹中删除密钥来让它再次失败,但 intelliJ 必须有它自己的 keylocker 解决方案,因为即使没有 Windows .ssh 文件夹中的密钥,intelliJ 也能继续工作。

    有关解释它的屏幕截图,您可以在此处查看https://vimeo.com/558267383/74d55415c4

    【讨论】:

      【解决方案5】:

      如果你像我一样在 Clion 中使用 wsl2,只需添加

      Host github.com
              IdentityFile /home/yieatn/.ssh/github
      

      到 /home/user/.ssh/config (如果它不退出则创建)。您甚至不必重新启动 IDE。

      【讨论】:

        【解决方案6】:

        添加到 Cristian Torres 的回答中:

        对于在 Mac OSX 上遇到类似问题的所有人:

        1. 在 IntelliJ、PyCharm 等中点击Tools -> Create Command-line Launcher...

        2. 打开终端并执行:

        $ export GIT_SSH_COMMAND="ssh -i ~/.ssh/your-custom-private-key"
        $ idea
        

        对于 PyCharm,可执行文件名称为 charm/usr/local/bin/charm

        戈兰:goland/usr/local/bin/goland

        WebStorm:webstorm/usr/local/bin/webstorm

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-18
          • 1970-01-01
          • 2020-01-04
          • 2013-11-08
          • 2014-02-01
          • 2020-07-02
          • 1970-01-01
          相关资源
          最近更新 更多