是否需要在github中设置SSH-Key?

Cod*_*ker 1 git github ssh-keys

开发人员大家好,我是 git 新手,我有一些关于 GitHub 的问题。如果可以请回答。

  • Q1)如果我的存储库是公开的并且我没有为我的帐户设置ssh 密钥,任何人都可以推送到我的存储库吗?
  • Q2)使用 HTTPS url 进行推送和拉取是否安全?
  • Q3)为什么即使我没有设置任何ssh-key git 也不要求身份验证?
  • Q4)我如何保护我的仓库不被外人看到,这样他们只能看到它而无法更改它?

And*_*ini 5

回答主要问题时,答案是“不,不是

关于其他问题:

  • Q1)如果我的存储库是公开的并且我没有为我的帐户设置 ssh 密钥,任何人都可以推送到我的存储库吗?

    • 不,如果您的存储库是公共的,那么每个人都可以clone在其本地工作副本中对其进行操作,但没有人可以在您的存储库上推送新的提交,除非您明确邀请他们(设置 -> 管理访问 -> 邀请协作者)并且他们接受邀请。

      如果协作者是您团队的成员并且您希望他直接在您的项目上工作(希望您共享工作流程以正确使用分支),则可以添加协作者。

      另一种协作方式是fork您的项目并要求通过pull request. 这是由外部协作者使用的。

  • Q2) 使用 HTTPS url 进行推送和拉取是否安全?

    • 它是安全的。主要区别在于,如果您使用具有 HTTPS url 的远程集,则每次需要远程操作时都需要传递您的凭据(pushpullfetch、 ...)。

      您可以将凭据保存在Linux.git-credentials中的文件中(但您的密码将存储在未加密的文本文件中)或将它们存储在Windows中的凭据管理器中。

  • Q3) 为什么即使我没有设置任何 ssh-key,git 也不要求身份验证?

    • 如果您正在执行,clone则不需要传递您的凭据,因为您的存储库是公共的。

      如果您正在执行,push唯一的原因是您正在Windows上工作并且您已经指定过一次凭据。现在它们存储在凭证管理器中(查看问题 2 的答案)。

  • Q4)我如何保护我的仓库不被外人看到,这样他们只能看到它而无法更改它?

    • 人们无法更改它,除非您未授权他们(查看问题1的答案)