IntelliJ,无法在GitHub上共享项目(权限被拒绝)

时间:2019-01-04 12:02:29

标签: github intellij-idea repository gitlab permission-denied

我是Git和GitHub / GitLab的新手。我尝试将项目共享到GitHub,但是会引发此异常:

Can't finish GitHub sharing process
        Successfully created project 'LiveGame1' on GitHub, but initial push failed:
        git@github.com: Permission denied (publickey).
        Could not read from remote repository.
        Please make sure you have the correct access rights
        and the repository exists.

我还可以通过Internet链接克隆存储库,但不能通过“ git@github.com:/ username / repository_name”克隆存储库。

如何解决此错误,我可以直接与GitLab共享项目吗?

6 个答案:

答案 0 :(得分:6)

这篇文章帮助我在Windows 10盒子上弄清一切:

https://richardballard.co.uk/ssh-keys-on-windows-10/

注意:文章的第一部分应以“在Windows中启用SSH 客户端”为标题,并应参考获取SSH 客户端 >已启用,而不是服务器。

如上一篇文章所述,如果您可以{@ {1}}工作而无需提示您输入密码,那么您就可以从IntelliJ进行推送了。

关键在于:

  • 获取在Windows中运行的 OpenSSH身份验证代理服务
  • 确保所调用的ssh -T git@github.comssh-add中提供的那个
  • 确保git也配置为使用Windows提供的ssh:

C:\Windows\System32\OpenSSH

使用git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"生成密钥时,请考虑使用ecdsa算法,如下所述:https://www.ssh.com/ssh/keygen/

同样重要的是清理其他试图在Windows之外执行ssh的操作(例如Putty)。我尝试运行ssh-keygen时一直遇到“格式无效”的问题,我认为这是由我正在使用的路径上的另一个ssh-add程序引起的,而不是Windows附带的OpenSSH引起的。

答案 1 :(得分:3)

这里有很多建议 How to solve Permission denied (publickey) error when using Git? 和这里 Git gives me a “Permission Denied” error when writing files that I am pulling 取决于操作系统。

对我来说,在Windows中使用IntelliJ解决方案就是这里提到的解决方案: Can't access git using SSH keys

我编辑了git-Installation中的 ssh_config -文件,IntelliJ将其与源主机一起使用,并且一切正常。

文件例如:

C:\ Program Files \ Git \ etc \ ssh \ ssh_config

在文件中进行更改,例如:

Host bitbucket.org
    IdentityFile C:\Users\User\.ssh\id_ssh

答案 2 :(得分:1)

我遇到了同样的问题,并在github帐户中为intelliJ生成了公钥。

设置->开发人员设置->个人访问令牌

然后通过提供必要的范围和描述为智能生成一个新令牌。并复制令牌密钥

之后,在intelliJ中选择“通过令牌访问登录” 。通过在显示的表单中粘贴密钥来登录。

谢谢

答案 3 :(得分:1)

我正在使用 Windows 10PuTTY 身份验证代理(带有密码保护的 SSH 密钥),这对我有用 - 对于我上传我的 Bitbucket 和 Github 帐户SSH 密钥。

<块引用>

在 Intellij 中集成“SSH”密钥的步骤 -

  1. 打开“PuTTYgen”应用程序。
  2. 点击“文件 > 加载私钥”。
  3. 从目录中选择您的 .ppk 文件。
  4. 点击“转换 > 导出 OpenSSH 密钥”。
  5. 使用“id_rsa”名称将文件保存在“C:\Users\(您的用户名)\.ssh”文件夹中。
  6. 打开 Intellij。
  7. 点击“文件 > 设置”。
  8. 展开“版本控制”。
  9. 展开“颠覆”。
  10. 点击“SSH”。
  11. 选择“私钥”单选按钮。
  12. 选择存储在“C:\Users\(您的用户名)\.ssh”文件夹中的生成文件。
  13. 点击“确定”按钮。

测试配置:点击“VCS > Git > Fetch”。如果“获取成功” 显示消息,您的配置成功

来源:https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000011270-How-to-set-up-git-SSH-keys-?page=1#community_comment_360001445600

答案 4 :(得分:0)

这个问题太笼统了。需要更多细节来澄清。

运行git remote show -n origin(假设您位于分支origin上。-n标志的意思是“请勿查询远程服务器”,这会减少Web请求的操作时间。),您可能会看到远程URL。

在许多常见情况下,例如在GitHub上,fork采用HTTPS协议

https://github.com/<user>/<repo>.git

或SSH协议

git@github.com:<user>/<repo>.git

如果字段user不是您或您的组织之一,则您似乎在尝试为某人的存储库做出贡献。请create a pull requestGit Credentials这样做。您可能需要使用命令更改本地存储库的远程URL

git remote set-url <branch> <newurl>

如果您是user,请检查您是否正确输入了令牌。

  • 如果使用HTTPS协议,请检查输入的用户名和密码。您可能需要检查GitHub
  • 如果使用的是SSH协议,请确保您具有从计算机到{{3}}的相应SSH密钥。您可以使用命令ssh -T git@github.com测试连接。

更新1:您的问题git@github.com:/username/repository_name似乎有错字。注意第一个斜杠。我不确定是否有麻烦。

更新2:检查您的Git凭证保存在File -> Settings -> Version Control -> GitHub

中的IntelliJ IDEA中

更新3:您也可以将其共享到GitLab,只需添加一个远程命令,例如运行命令git remote add gitlab <url>

答案 5 :(得分:0)

关于WebStorm,我可以分享类似的情况和答案。

我以前存储了另一个SSH密钥的密码,我添加了一个新密钥(如果在Mac上,请不要忘记ssh-agent -s,但WebStorm并未使用它。 / p>

在WebStorm中没有为即将出现的错误消息提供上下文,可悲的是git中的通用上下文:

Push failed

<project>: git@<domain>: Permission denied (publickey).

Could not read from remote repository.
                    
Please make sure you have the correct access rights
and the repository exists.

如在JetBrains的IntelliJ跟踪器和/或论坛(他们在这里带领我),WebStorm(并且我也假设为IntelliJ)的severalseveral issues中提到并链接em>使用您的SSH配置点文件。这意味着使用本机ssh客户端(在先前版本Settings » Version Control » git » SSH Executable to "native"中)或使用配置(Settings » Tools » SSH Configuration s)

因此,创建或编辑SSH config(例如Mac:~/.ssh/config)以包含例如

Host <domain>
    User git
    IdentityFile ~/.ssh/<your private SSH key file, usually `id_...`>

然后将使WebStorm在git remote的{​​{1}}上启动,并提示您输入配置的SSH密钥/ SSH配置项的密码。

(请记住要替换上面标记有domain的占位符)。