【问题标题】:Why does git return permission denied (publickey)?为什么git返回权限被拒绝(公钥)?
【发布时间】:2015-08-22 05:11:17
【问题描述】:

我在服务器和 git 远程存储库上有一个项目。服务器和存储库有 ssh 对(如果我在服务器上,我可以通过 ssh 从远程 git 存储库克隆任何项目)。我想将项目从存储库克隆到我的本地机器,所以我通过 scm .ssh/ 文件夹从服务器复制并将它放在我的 /home/ 文件夹中。

但是,当我尝试将项目从 repo 克隆到本地机器时,git 返回错误:

Permission denied (publickey).
fatal: Could not read from remote repository.

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

我做错了什么?

【问题讨论】:

    标签: git ssh


    【解决方案1】:

    您应该将您的公钥添加到服务器上的~/.ssh/authorized_keys

    编辑 如果您已将 ssh 密钥复制到本地计算机,您可能还需要将它们添加到本地 ssh-agent ssh-add <key file>,您可以通过运行 ssh-add -L 检查哪些密钥已添加到代理。

    【讨论】:

    • 服务器在哪里?我想要一个克隆项目从存储库到我的本地机器,只使用来自服务器的 ssh 密钥
    【解决方案2】:

    您需要生成一个 ssh 密钥,以便 git 将您的设备识别为 ~/.ssh 中允许的。

    访问 https://github.com/settings/ssh 以确保您拥有与您的设备关联的 SSH 密钥。

    如果不这样做,您可以按照此处的说明生成公钥:

    https://help.github.com/articles/generating-ssh-keys/

    然后,将密钥添加到您的 git 帐户,您应该可以运行 ssh -T git@github.com 以确认连接成功。

    【讨论】:

    • 谢谢,但我无权访问存储库,因此无法添加密钥。我只能使用此密钥
    • 我不确定我是否理解 - 在这种情况下,密钥与您的 github 帐户相关联,而不是与存储库相关联。登录 github,然后按照上面的说明配置您的 ssh 设置。如果该帐户不属于您并且 repo 是私有的,则帐户所有者需要通过将您的用户名添加到相关存储库中来授权您的访问 help.github.com/articles/…
    • 当你运行ssh -T git@github.com 时会发生什么?
    • 我知道,但它不是 github 的存储库。我再次尝试解释一下:我不是存储库的所有者,但我可以访问可以通过 ssh 克隆存储库的服务器.然后,我将id_rsaid_rsa.pub 复制到我的.ssh/ 文件夹并尝试从我的本地计算机访问存储库
    • 我明白了——所以试试这个,确保你的公钥被添加到远程服务器上的 ~/.ssh/authorized_keys 中(见 joran 下面的回答)——然后,在你的本地机器上,在项目目录中,指定远程存储库git remote add origin git@MY_SEVER:MY_USERNAME/MY_PROJECT.git - 也许你会发现这个资源很有用digitalocean.com/community/tutorials/…
    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 2020-01-04
    • 2013-11-08
    • 2016-11-01
    • 2014-02-01
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多