IntelliJ IDEA git权限被拒绝(publickey)

时间:2016-06-29 16:43:36

标签: git intellij-idea gitlab

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

  1. 将ssh可执行文件设置为Native
  2. 将我的公钥从Putty转换为ssh-keygen样式
  3. 删除known_hosts
  4. 我还尝试使用Git Bash访问回购,它可以正常工作。 另一个有趣的事实是,在删除known_hosts后,我得到了#34;主机密钥验证失败"。我不得不使用Git Bash一次重新创建known_hosts条目,之后我再次获得Permission denied错误。不知怎的,我不会被要求任何用户输入。

4 个答案:

答案 0 :(得分: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 路径。

答案 1 :(得分:2)

更新 IDEA 2020.3

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

ssh-agent 和 ssh-add 之间的任何不一致都会导致某些事情起作用而某些事情不起作用的情况。

例如,我运行了 Windows OpenSSH 代理,但我的路径首先指向 Windows ssh-add 的 Git。鉴于存在许多 ssh 实现,许多此类故障都可能发生,因此知道您知道事情是从哪里运行的。

要在 IDEA 中使用 ssh...


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(就像我为 Git 所做的那样),请删除它; IDEA 如果设置就会中断(整个星期都在与 JetBrains 支持人员一起工作)。
  4. 在 Windows cmd.exe 控制台中,运行 start-ssh-agent.cmd 以启动代理
  5. 在 IDEA 的 Settings | SSH Configurations | Authentication type: 中将其设置为 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 中工作。

答案 2 :(得分:0)

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

  1. 打开Git-SCM安装目录中存在的Git-SCM ssh_config 文件。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

答案 3 :(得分:0)

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

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

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