如何使用私钥克隆GIT仓库

3

我正在尝试创建一个应用程序,该应用程序将GIT仓库克隆到计算机上。我的问题是如果SSH密钥不在默认位置,如何克隆受保护的存储库。

我想让人们上传密钥,然后使用这些密钥连接并克隆存储库。

因此总结一下:我不希望GIT在默认位置查找密钥,我想要“给”它密钥文件的路径,然后将其放入命令中(如果有密码短语也一样),以某种方式并获得克隆的存储库。

非常感谢您提前的帮助!


1
“上传密钥” - 你是认真的吗?你是在鼓励用户上传他们的私钥吗?这样做的用户显然不知道自己在做什么,因为他们应该保持他们的私钥私有!将其发布给任何人,传输它,都会将身份验证安全置于风险之中,并且基本上会使任何安全措施失效。我不知道你想做什么,但你确定这是正确的方法吗? - Kissaki
1
在下面的答案评论中,您谈论如何在PHP中实现此操作,但是您没有在问题中提到PHP。您能否具体说明一下?此外,这是在本地执行的PHP脚本,因为您试图将其克隆到(本地?)计算机上吗? - Kissaki
1个回答

4

查找的不是Git,而是SSH。你需要在.ssh/authorized_keys文件中指定密钥,这是公钥。私钥将存储在用户的计算机上。


非常感谢您的回答。我已经看到SmartGit(OS X应用程序)使用自己的SSH客户端连接存储库。我该如何创建自己的SSH客户端(附注:它是一个PHP应用程序)? - Goran
@Goran 公钥由SSH服务器进行检查。您可以在一些现有的SSH客户端基础上进行构建:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients - Šimon Tóth
很抱歉,你可能没有理解我的意思。在SmartGit应用程序中,你只需要选择一个私钥并输入密码,它就会自动连接到git存储库。这正是我想要在PHP Web应用程序中编写的内容... 你能帮我吗? - Goran
@Goran 但是你不需要SSH客户端,Git就足够了。工作原理如下:git客户端 -> SSH客户端 -> INTERNET -> SSH服务器 -> Git服务器 - Šimon Tóth
@Let_Me_Be 好的,非常感谢您的讨论。您非常有帮助!我们已经决定采用不同的方式,只使用工作树(因为通常我们无法通过PHP访问.ssh文件夹)。 - Goran
显示剩余2条评论

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