克隆私有仓库时出现权限被拒绝的问题

7
我试图克隆另一位开发者拥有的私有仓库,但我与该开发者没有直接联系。他们已经给我发送了一个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

工作了。


尝试这个:https://dev59.com/82455IYBdhLWcg3wD_sB - cppanda
也许你应该尝试使用ssh://方案 - 如果你已经有了密钥,请尝试:git clone ssh://username@host.xz/absolute/path/to/repo.git/ - smichak
4
为什么他们不直接把你添加为合作者? - Blender
@Blender,这些文件是客户提供的。我并没有直接与GitHub仓库的开发者/所有者进行沟通。 - user1071182
使用该git仓库的http://版本而不是克隆git@github.com版本。 - uday
@smichak 默认方案应该是ssh。 - millimoose
3个回答

14
他们发送给我一个 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转换为OpenSSH密钥文件,这是Git附带的SSH客户端可以使用的。您可以通过使用PuTTYgen打开PPK并选择“Conversions/Export OpenSSH key”来执行此操作。您应该将文件保存为C:\Users\<username>\.ssh\id_rsa以供Git使用。

2
"永远不要这样做": 我同意。我回答了第二部分(你更准确),但是你的提醒很有用。+1 - VonC
非常重要!!!您应该将文件保存为 C:\Users<username>.ssh\id_rsa,以便Git使用它。"id_rsa"。如果您为SSH文件指定任何其他名称(这就是我之前做的),它将无法与Git一起使用!!! - SSG

4

2
为了确保您的客户有合法的权限来传递他或她的密钥并让您进入,如果他们不是所有者,这看起来对我来说是麻烦。 - bmargulies

0

只需将以下代码复制并粘贴到批处理文件中,然后执行即可:

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

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

XXX:这是您设备的密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接