[英]Jenkins issue with Git [Permission denied (publickey).] on Windows
[英]IntelliJ IDEA git Permission denied (publickey)
我在 Windows 10 上的 IntelliJ IDEA 上使用 git 时遇到了一个奇怪的问题。如果我想访问 GitLab 上的远程存储库,我总是得到Permission denied (publickey) 。 我在这里或通过谷歌找到的一切都没有解决问题。 我试过:
我还尝试使用Git Bash访问存储库,它可以正常工作。 另一个有趣的事实是,在删除 known_hosts 后,我得到“主机密钥验证失败”。 我不得不使用 Git Bash 重新创建 known_hosts 条目,之后我再次收到 Permission denied 错误。 不知何故,我没有被要求提供任何用户输入。
我在从 Intellij 2019.2 连接 bitbucket 云时遇到了这个问题,幸好通过以下步骤得到了解决。 请注意,这些步骤将在您成功生成并添加 ssh-public 密钥到您的 bitbucket/github/gitlab 配置文件后执行。
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
自 OP 以来已经很久了,但这是我基于执行的解决方案:
GIT_SSH_COMMAND
。示例:
> set GIT_SSH_COMMAND=ssh -i C:\\path\\to\\not\\default\\key
> idea
此外,not-default-key 的路径应该使用~
而不是 %userprofile% 或使用/
的类似 unix 的路径。
Sahil 的答案中的错误已得到修复,并且对于一台或多台主机的一个密钥的最常见情况,在 ssh 配置文件中正确输入不需要 Christian 的解决方案。 复杂配置的其他选项,例如同一或多个主机的多个密钥,可以在超级用户的 Maddes 综合回答中找到。
ssh-agent 和 ssh-add 之间的任何不一致都会导致某些事情起作用而某些事情不起作用的情况。
例如,我运行了 Windows OpenSSH 代理,但我的路径首先指向 Windows ssh-add
的 Git。 鉴于存在许多 ssh 实现,许多此类失败都是可能的,因此要知道您知道事情是从哪里运行的。
要让 ssh 在 IDEA 中工作...
适用于 Windows 的 Git
C:\\Program Files
。Control Panel | User Accounts | Change my environment variables
Control Panel | User Accounts | Change my environment variables
Control Panel | User Accounts | Change my environment variables
将 Git usr\\bin
文件夹添加到cmd
文件夹条目之后的路径中(例如C:\\Git\\usr\\bin
用于我的安装)。Settings | SSH Configurations | Authentication type:
Settings | SSH Configurations | Authentication type:
Settings | SSH Configurations | Authentication type:
将其设置为Key pair OpenSSH or PuTTY
并测试您的连接。 然后,做一个小改动并测试Commit and push...
。视窗 OpenSSH
Control Panel | User Accounts | Change my environment variables
Control Panel | User Accounts | Change my environment variables
Control Panel | User Accounts | Change my environment variables
将C:\\Windows\\System32\\OpenSSH
到您的路径。 确保路径中没有其他 ssh 实现位于此之前!Task Manager | Services
启动 OpenSSH 代理Task Manager | Services
Task Manager | Services
(或任何数量的其他方式)SSH Configuration
为上面的 #5请记住,在 Windows 上,IDEA 中的 ssh 使用标准 Windows 命令行控制台 (cmd.exe) 中可用的环境。 如果 git 操作在那里工作,那么通过上述步骤,它们将在 IntelliJ 中工作。
我遇到了同样的问题,虽然它确实与公钥有关,但我的问题与 WSL2/Linux 和 windows .ssh 文件夹有关。 我的密钥在我的 WSL2/linux 文件夹系统中,但 intelliJ 正在我的 windows 文件夹系统中查找。
我将我的 rsa 密钥从 WSL2 复制到 Windows,它会自动工作。 事实上,我试图通过从 Windows 文件夹中删除密钥来让它再次失败,但是 intelliJ 必须有它自己的 keylocker 解决方案,因为即使没有 Windows .ssh 文件夹中的密钥,intelliJ 也继续工作。
有关解释它的屏幕截图,您可以在此处查看https://vimeo.com/558267383/74d55415c4
如果你像我一样在 Clion 中使用 wsl2,只需添加
Host github.com
IdentityFile /home/yieatn/.ssh/github
到 /home/user/.ssh/config (如果不退出则创建)。 您甚至不必重新启动 IDE。
添加到Cristian Torres的回答中:
对于在Mac OSX上遇到类似问题的所有人:
在 IntelliJ、PyCharm 等中,单击Tools -> Create Command-line Launcher...
打开终端并执行:
$ export GIT_SSH_COMMAND="ssh -i ~/.ssh/your-custom-private-key"
$ idea
对于 PyCharm,可执行文件名称是
charm
或/usr/local/bin/charm
Goland:
goland
或/usr/local/bin/goland
WebStorm:
webstorm
或/usr/local/bin/webstorm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.