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

Is setting SSH-Key in github necessary?

嗨开发者,我是 git 的新手,我有一些关于 GitHub 的问题。 请尽可能回答。

Q1) 如果 public 并且我没有为我的帐户设置 ssh 密钥,任何人都可以进入我的回购协议吗? - 不,不是所有人都可以推送你的回购协议(这与 Github 有关)只有你,但是有些人可能会提出拉取请求。

Q2) 使用Html url 进行推拉是否安全? - 它是安全的,在进行操作之前它仍然需要您的凭据。

Q3) 为什么 git 即使我没有设置任何 ssh-key 也不要求身份验证? - 你只需要设置一次,我想你已经为你的情况设置了全局 Git 配置。

Q4)如何保护我的 repo 表单外人只能看到而不能更改? - 他们不能更改它,但如果他们看到它,他们可以复制并自行上传。

回答主要问题时得到的回答是“不,不是

关于其他问题:

  • Q1) 如果 public 并且我没有为我的帐户设置 ssh-key,任何人都可以进入我的 repo 吗?

    • 不,如果你的存储库是 public 每个人都可以 clone 它并在他的本地工作副本中处理它但是 none 可以在您的存储库上推送新提交,除非您明确邀请他们(设置 -> 管理访问权限 -> 邀请协作者)并且他们接受了邀请。

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

      另一种协作方式是 fork 您的项目并要求通过 pull request 合并新功能/修复。这被外部合作者使用。

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

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

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

      中的凭据管理器中
  • Q3) 为什么即使我没有设置任何 ssh-key,git 也不要求验证?

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

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

  • Q4) 我怎样才能保护我的 repo 不被外人看到,让他们只能看到它而不能更改它?

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