Git错误:"请确保您拥有正确的访问权限并且存储库存在"

Ale*_*lex 77 git github tortoisegit

我在Windows上使用TortoiseGit.当我尝试从标准Windows资源管理器的上下文菜单克隆时,我收到此错误:

请确保您具有正确的访问权限并且存储库存在

更确切地说,终端的快照如下:

git.exe clone --progress -v"git @ arobotdev:\ git\AlfaRobot.git""C:\ Work\AlfaRobot"

克隆到'C:\ Work\AlfaRobot'...
权限被拒绝,请再试一次.
许可被拒绝,请再试一次.
权限被拒绝(公钥,密码).
致命:无法从远程存储库读取.

请确保您具有正确的访问权限
并且存储库存在.

git没有干净地退出(退出代码128)(21450 ms @ 19.09.2014 10:36:58)

我该怎么做才能让git正常工作?

Vis*_*hnu 59

您的git网址可能已更改.使用以下命令更改本地目录中的URL

git remote set-url origin git@yourGitUrlHere
Run Code Online (Sandbox Code Playgroud)

  • FYI github现在使用url方案:`git remote set-url origin https:// github.com/username/repository.git` (9认同)
  • 我犯了一个非常常见的错误。我使用 Clip 命令 `xclip -sel Clip < ~/.ssh/id_rsa.pub` 进行复制,但在粘贴到 github 密钥输入框中时,我使用退格键删除了最后一个换行符,这实际上更改了公钥。因此,请始终按原样复制并粘贴 ssh 公钥,而不删除最后一个换行符。 (3认同)

小智 47

这个问题可能与您的ssh-agent有关,您的ssh密钥尚未添加ssh-agent.您必须使用终端应用以下步骤: -

  1. $ eval"$(ssh-agent -s)"

    特工pid 5867

  2. $ ssh-add

    输入/home/you/.ssh/id_rsa的密码:[]已添加身份:/home/you/.ssh/id_rsa(/home/you/.ssh/id_rsa)

然后它会起作用.

  • 克隆时仍然出错:`致命:无法从远程存储库读取 (9认同)
  • 谢谢它对我有用我创建了与默认 id_rsa 不同的密钥,所以只需要在上面的命令 ssh-add -K ~/.ssh/id_rsa_other_project 中额外做。 (2认同)

RyP*_*ope 34

Github 现在使用 url 方案

git remote set-url origin https://github.com/username/repository.git

  • `致命:没有这样遥远的'起源'`。我在 github 上有一个存储库,并且我使用 `git init` 在我的机器上启动了一个 git 本地存储库。 (2认同)
  • @NoahJ.Standerson您必须使用“git remote add origin https://github.com/user/repo.git”在本地存储库上设置远程“origin” - 请参阅https://docs.github.com/en/ free-pro-team@latest/github/using-git/adding-a-remote (2认同)
  • 2021 年 8 月 13 日删除了对密码身份验证的支持。请参阅 https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ 了解更多信息。 (2认同)

小智 33

  1. 运行下面的命令
open ~/.ssh
Run Code Online (Sandbox Code Playgroud)

然后手动删除“known_hosts”文件

  1. 运行以下命令,生成新的 ssh-key
ssh-keygen -t rsa -C "your@email.com"
Run Code Online (Sandbox Code Playgroud)

然后.ssh目录下会生成两个文件:id_rsa和id_rsa.pub,复制id_rsa.pub中的内容

  1. 登录github --> 设置 --> SSH 和 GPC 密钥 --> 添加 SSH 密钥 --> 将复制的内容粘贴到 key 中

  2. 运行下面的命令

ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

好的,可以了


shi*_*vam 29

如果它之前工作并突然停止工作:

导致此问题的原因可能ssh-agent是有时在重新启动后不持久。您应该检查是否ssh-agent添加了您的密钥:

ssh-add -l -E md5
Run Code Online (Sandbox Code Playgroud)

如果你得到如下输出:

The agent has no identities.
Run Code Online (Sandbox Code Playgroud)

这意味着ssh-agent丢失了你的钥匙。在这种情况下,您只需再次添加身份密钥。就像是:

ssh-add ~/.ssh/git_rsa
Run Code Online (Sandbox Code Playgroud)

错误现在应该消失了!

  • 事实上,这个问题是在 MacOS Catalina 重新启动后出现的。感谢您指出问题+1 (3认同)
  • 当我为不同的帐户创建另一个 ssh 时,就发生了这种情况,所以我只需将缺少的“git_rsa”添加到列表中 (2认同)

Jac*_*raj 28

对我来说,这是因为机器上没有SSH密钥.在本地检查SSH密钥:

$ cat ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

这是您的SSH密钥.将其添加到存储库中的SSH密钥.
在gitlab中去

配置文件设置 - > SSH密钥

并添加密钥

  • 我已经添加了您提到的密钥,但仍然收到拒绝访问的消息.请帮忙 (7认同)

Lov*_*rma 23

尝试使用HTTPS代替SSH并从GIT获取关闭URL,它对我有用.然后通过gitbase或任何其他git客户端从该URL获取. 在此输入图像描述

  • 为什么这个不相关的答案有 58 票赞成,我无法理解 (5认同)
  • 我认为这与报告的问题无关。 (4认同)

Cee*_*man 10

如果您在共享机器上,使用您自己的密码或无密码私钥可能有点过分。更安全的选择是访问令牌:

  1. 转到设置,开发人员设置,个人访问令牌
  2. 生成新令牌。
  3. 请注意令牌的用途。
  4. 授予回购访问权限。
  5. 克隆回购:
$ git clone https://<token>@github.com/<user>/<repo>.git
Run Code Online (Sandbox Code Playgroud)

如果你已经克隆了 repo,你可以修改你的远程设置:

$ git remote set-url origin https://<token>@github.com/<user>/<repo>.git
$ git pull
Already up to date.
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,我面临着在需要 VPN 才能工作的机器内克隆存储库的问题,这是连接到 github 的唯一方法。谢谢 (2认同)
  • 这是在共享主机上唯一对我有用的东西。多谢多谢! (2认同)

Mud*_*zvi 9

您正尝试通过ssh:克隆存储库git@arobotdev...,并且未在服务器上正确设置SSH密钥.这有多种原因:

  1. 您的公钥可能未保存在用户git的authorized_keys文件中
  2. 如果1不为真,则您的私钥不会保存在您的HOMEDIR的.ssh /文件夹中.
  3. 权限未正确设置

如果以上所有3都是不真实的,那么我唯一的结论就是尝试: git@arobotdev:AlfaRobot.git 假设AlfaRobot.git在git用户的HOMEDIR中,而不在名为git的文件夹中,该文件夹位于用户git的HOMEDIR中.


Duc*_*Mai 9

我正在使用Ubuntu

阅读了很多答案后,没有一个可以解决问题,即使我已经将 SSH 密钥添加到我的 git 帐户,并尝试使用它进行测试,ssh -T git@gitlab.com它说Welcome <my username>,但它仍然不断告诉我我没有访问权限。然后我找到了原因:

通常,如果您不是root用户,它会要求您运行sudo每个 git 命令。

跑步时sudo git clone <SSH....>(例如)。它将在许可下执行root,但是当创建 SSH 密钥时,我意外地以普通用户身份运行它并将密钥保存在 中~/.ssh/id_rsa,它解析了绝对路径/home/username/.ssh/id_rsa。当执行此操作时sudo git clone ...,它会在中查找 SSH 密钥/root/.ssh/id_rsa

为什么我可以肯定这一点。查看 git 在哪里查找您的 SSH 密钥。运行此命令:sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. 它会告诉你在哪里寻找你的 SSH 密钥。

所以我建议的解决方案是:

重新创建您的 SSH 密钥(按照此说明操作),但sudo su在第一步运行,那么您应该没问题。


alb*_*ert 8

我遇到了这个问题,我发现我的系统使用了错误的 dns 地址。验证您的网络并测试

ssh -vvv git@bitbucket.org
Run Code Online (Sandbox Code Playgroud)

并阅读输出消息。如果您看到“您可以使用 git 或 hg 连接到 Bitbucket”。, 一切都好。


Obi*_*nya 6

  1. 您可能要确认的第一件事是互联网连接。尽管如此,互联网问题大多会说无法访问回购。

  2. 确保您已在本地和 github 上设置了 ssh。看看如何

  3. 确保您使用的是 ssh git 远程。如果您已经克隆了 https,只需使用此 git 命令将 url 设置为 ssh urlgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. 如果您已正确设置 ssh 但它刚刚停止工作,请执行以下操作:

    • eval "$(ssh-agent -s)"
    • ssh-add

    如果问题仍然存在,请检查以确保您没有从 github 中删除 ssh。如果 ssh 已从 github 中删除,您可以将其添加回来。使用pbcopy < ~/.ssh/id_rsa.pub复制的SSH密钥,然后去你的github的ssh设置并添加它。

我会建议您始终使用 ssh。对于我合作过的大多数团队,除了使用 ssh 之外,您无法访问 repo(大部分是私有的)。对于初学者来说,它可能看起来更难,但后来你会发现它更容易和更安全。


par*_*ish 5

rsa.pub(即生成的公钥)需要添加到github >> settings >> ssh keys页面.检查一下,您尚未在repository-settings >>部署密钥中添加此公钥.如果是这样,请从此处删除条目并添加到提到的第一个位置.

在酒吧里,私有密钥的设置细节.

它会起作用!


Fel*_*Dev 5

错误配置的~/.ssh/config文件可能会触发此错误。

GitHub的测试命令基本上为我打印出了解决方案:

ssh -T git@github.com

/Users/myUser/.ssh/config:第 13 行:错误的配置选项:something-that-did-not-make-sense