Git克隆私人仓库,权限被拒绝

Posted

技术标签:

【中文标题】Git克隆私人仓库,权限被拒绝【英文标题】:Git clone private repo, permission denied 【发布时间】:2012-12-11 06:46:57 【问题描述】:

我正在尝试克隆另一个开发人员拥有的私有存储库。我没有与该开发人员直接沟通。他们向我发送了 theirusername-id_rsa.pub 文件和 theirusername-priv.key.ppk 文件。我了解 ppk 文件特定于 Putty ssh 客户端。有人可以向我提供如何克隆他们的回购的步骤吗?我已经用我自己的帐户配置了 git,我想我必须将他们的 ssh 密钥添加到我的 ssh/config 文件或其他东西中,但我有点 ssh 菜鸟。

git clone git@github.com:theirusername/pro.git
Cloning into 'pro'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

编辑:我能够访问 github 存储库并将自己添加为协作者。即使这样做了我也不能

git clone git@github.com:theirusername/pro.git

然而

git clone https://github.com/theirusername/pro.git

确实有效。

【问题讨论】:

试试这个***.com/questions/4565700/… 也许你应该尝试 ssh:// 方案 - 如果你有适当的密钥尝试: git clone ssh://username@host.xz/absolute/path/to/repo.git/ 他们为什么不直接将您添加为合作者? @Blender,客户给了我文件。我没有与 github repo 的开发者/所有者直接沟通。 而不是使用该 git repo 的 http:// 版本克隆 git@github.com 版本。 【参考方案1】:

只需将下面的代码复制并粘贴到一个bat文件中并执行它

echo y|"C:\Program Files (x86)\PuTTY\plink.exe" root@XXX.XXX.XXX.XXX -pw XXXX 退出

XXX.XXX.XXX.XXX :这是您设备的 IP 地址。

XXX:这是您设备的密码

【讨论】:

【参考方案2】:

他们向我发送了 theirusername-id_rsa.pub 文件和 theirusername-priv.key.ppk

首先,告诉他们永远不要这样做。出于某种原因,这样调用公钥/私钥。让多个实例(人或计算机)共享同一个密钥是不合时宜的。您应该为每个单独的密钥使用一个单独的密钥,以便在它们之间建立一对一的关联。

如果他们无法将您添加为协作者(这需要您自己的用户帐户),那么他们只需将 您的 密钥添加到他们自己的个人资料中即可。我强调的是“你的密钥”,因为应该生成它并只向他们发送公钥。私人的应该永远对其他人保密。

话虽如此,当您拥有 PPK、PuTTY 私钥文件时,您有两种选择。首先是使用 PuTTY 的 pageant 加载密钥文件并让 Git 使用 PuTTY 的 plink 作为 SSH 客户端。您可以通过将GIT_SSH 环境变量设置为plink.exe 的路径来做到这一点,例如C:\Program Files\PuTTY\plink.exe.

第二种选择是将 PPK 转换为 Git 附带的 SSH 客户端可以使用的 OpenSSH 密钥文件。您可以通过使用 PuTTYgen 打开 PPK 并选择“转换/导出 OpenSSH 密钥”来做到这一点。您应该将文件保存为 C:\Users\<username>\.ssh\id_rsa 以供 Git 使用。

【讨论】:

“永远不要这样做”:我同意。我在回答第二部分(你做的更准确),但你的提醒很有用。 +1 非常重要!!!您应该将文件保存为 C:\Users\\.ssh\id_rsa 以使 Git 使用它。 “id_rsa”。如果你给你的 ssh 文件起任何其他名字(这是我正在做的,它不会与 GIT 一起工作!!!)【参考方案3】:

你需要:

确保您已定义环境变量 HOME(如果您从 git bash session 执行 git 操作,即使在 Windows 上也应为您定义) 要将您的 ppk 密钥转换为 id_rsa 和 id_rsa.pub:请参阅“How to I tell Git for Windows where to find my private RSA key?”。 定义您的配置文件或将您的密钥添加到 ssh 代理,如“Specify private SSH-key to use when executing shell command”中所述。

【讨论】:

并且要非常确定您的客户有合法的许可来传递他或她的钥匙,如果他们不是所有者,让您进入。对我来说似乎很麻烦。

以上是关于Git克隆私人仓库,权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

git clone 私人仓库的更好方法是啥?

从 Dockerfile 克隆私有 git 存储库

git clone 有效; git子模块失败“权限被拒绝”

致命:无法创建工作树目录“scrumwala.git。”:权限被拒绝

Ansible git clone github 权限被拒绝(公钥)

错误:对 user1/repo.git 的权限拒绝给 user2