【问题标题】:How to clone GIT repository with private key如何使用私钥克隆 GIT 存储库
【发布时间】:2011-05-18 13:57:34
【问题描述】:

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

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

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

非常感谢您!

【问题讨论】:

  • “上传密钥”——你是认真的吗?您是在谈论鼓励用户上传他们的私钥吗?这样做的用户显然不知道他们在做什么,因为他们应该将他们的私钥保密!将它发布给任何人、传输它,都会使身份验证安全面临风险,并且几乎否定了任何安全措施。我不知道你想做什么,但你确定这是要走的路吗?
  • 在下面的答案 cmets 中,您正在谈论在 PHP 中实现这一点,但是您在问题中没有提到 PHP。你能具体说明/详细说明吗?另外,它是在本地执行的 PHP 脚本吗,因为您正试图让它克隆一个 repo 到(本地?)计算机!?

标签: git ssh command key clone


【解决方案1】:

寻找的不是 git,而是 SSH。您需要在 .ssh/authorized_keys 文件中指定密钥,即公钥 btw。私钥将存储在用户机器上。

【讨论】:

  • 非常感谢您的回答。我已经看到 SmartGit(OS X 应用程序)使用它自己的 SSH 客户端来连接存储库。如何创建自己的 SSH 客户端(ps 它是一个 PHP 应用程序)?
  • @Goran 公钥由 SSH 服务器检查。您可以在一些现有的 SSH 客户端上构建:en.wikipedia.org/wiki/Comparison_of_SSH_clients
  • 恐怕你没听懂我的意思。在 SmartGit 应用程序中,您只需选择一个私钥并输入密码,它就会自动连接到 git 存储库。这正是我想要编写的代码,但在 PHP Web 应用程序中......你能帮我吗?
  • @Goran 但是你不需要 ssh 客户端,git 就足够了。这是如何工作的:git client -> ssh client -> INTERNET -> ssh server -> git server
  • @ Let_Me_Be 但是,我仍然不知道如何使用不在默认位置的私钥登录 git repo(假设它在 /mykeys 文件夹中,我没有复制/移动的权限它)...
猜你喜欢
  • 2022-01-23
  • 2021-02-04
  • 2020-09-20
  • 2020-09-23
  • 2017-03-04
  • 2013-11-04
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多