gpt4 book ai didi

Gitlab - git clone 在 macOS 中使用 ssh 和 https 都失败

转载 作者:行者123 更新时间:2023-12-01 22:08:11 33 4
gpt4 key购买 nike

我的同事授权我以 Master 身份访问他的存储库,然后我使用 SSH 和 HTTPS 克隆它,但它总是失败:

GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已经在 .pub 文件中检查了我生成的公钥,并且已经插入到我的 Gitlab 帐户中。而且我还尝试克隆一个存储库(来自其他所有者),并且它有效!这令人困惑。

我错过了什么吗?

最佳答案

我遇到了同样的问题,并且发现了多个问题。我不是这方面的专家,但这里是我为解决问题所采取的步骤的总结。希望对您有所帮助:

解决HTTPS克隆问题:

  1. 克隆失败并出现上述错误,并且没有在命令行提示我输入用户名和密码。使用详细标志运行克隆

    git clone --progress --verbose https://[my_gitlab_server]/[repo]/[project].git

    显示 git 正在从 OSX 工具链中提取凭据,这显然是不正确的。我使用说明 here 禁用了它.

    sudo git config --system --unset credential.helper

  2. 我现在收到用户名和密码提示,但得到:

    远程:HTTP Basic:访问被拒绝远程:对于 Git over HTTP,您必须使用具有“api”范围的个人访问 token 。远程:您可以在 https://[my_gitlab_server]/profile/personal_access_tokens 生成一个致命:“https://[my_gitlab_server]/[repo]/[project].git/”的身份验证失败'

    所以我按照指示创建了一个个人访问 token here .

  3. 我不确定如何处理 token 。事实证明,您可以按照 here 所述将其包含在 URL 中(对我来说,它看起来像 git clone https://oauth2:[token]@[my_gitlab_server]/[project].git )或者你可以将 token 粘贴到命令行提示符下的 'password '.

我现在可以通过 HTTPS 进行克隆。

解决SSH克隆问题:

SSH 克隆给出了与 HTTPS 克隆相同的错误。一些background on bash agents在这里很有帮助。

  1. 我在我的用户目录中找到了我的 ~/.ssh/config 文件,并验证了 repo 在那里有一个条目。

    主机 [my_gitlab_server]/[repo]
    身份文件 ~/.ssh/id_rsa2

  2. 我在 ssh 目录中有多个 id-rsa 文件,所以我打开了 id_rsa2.pub(配置文件中与我的 repo 关联的那个)并将它与我的 key 进行比较通过导航到我的“配置文件设置”中的“SSH key ”选项卡在我的存储库中找到。键是相同的。

    (如果您在创建和查看 key 方面需要帮助,请参阅文档 here。)

我的 key 已到位,但我的 SSH 克隆仍无法正常工作。

  1. 我认为配置文件可能有问题,或者我的 key 不再有效,所以我通过使用说明 here 手动将 key 添加到当前终端 session 来绕过配置文件。 .

    eval $(ssh-agent -s)
    ssh 添加 ~/.ssh/id_rsa2

    这行得通,所以我知道我的 key 是有效的。

    (顺便说一下,要查看加载到您的代理中的 key 运行 ssh-add -L 并查看它们的指纹运行 ssh-add -l。)

现在的问题是我需要使用 ~/.ssh/config 文件,这样我就不必运行 evalssh-add 每次我打开一个新的终端窗口。

  1. 为了排除故障,我运行了 ssh -Tvv git@[my_gitlab_server] 成功连接到我的 gitlab 服务器,但使用了我不认识的 key 。在输出中,我注意到未搜索文件 id-rsa2
  2. 使用来自 ssh.com 的关于 keys 的信息和 ssh_config files ,我发现 /etc/private/ssh/ssh_config 文件指定了使用哪些 key 。默认值是:

    IdentityFile ~/.ssh/id_rsa
    身份文件 ~/.ssh/id_dsa
    身份文件 ~/.ssh/id_ecdsa
    身份文件 ~/.ssh/id_ed25519

    我通过运行 sudo nano/private/etc/ssh/ssh_config 并添加以下行来添加我的 id_rsa2 key :

    IdentityFile ~/.ssh/id_rsa2

这非常有效。

总的来说,最好使用带有默认 id_rsa 名称的单个 ssh key 来避免此类问题。

关于Gitlab - git clone 在 macOS 中使用 ssh 和 https 都失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257947/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com