是否需要在 github 中设置 SSH-Key?
Is setting SSH-Key in github necessary?
嗨开发者,我是 git 的新手,我有一些关于 GitHub 的问题。
请尽可能回答。
- Q1) 如果我的存储库是 public 并且我没有为我的帐户设置 ssh-key,那么任何人都可以进入我的存储库吗?
- Q2)使用 HTTPS url 进行推送和拉取是否安全?
- Q3)即使我没有设置任何 ssh-key,为什么 git 不要求身份验证?
- Q4)如何保护我的 repo 不被外人看到,而他们无法更改它?
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 的远程集,则每次需要远程操作时都需要传递您的凭据(push
、pull
、fetch
, ...).
您可以将您的凭据保存在 Linux 中的 .git-credentials
文件中(但您的密码将存储在未加密的文本文件中)或者将它们存储在 Windows.
中的凭据管理器中
Q3) 为什么即使我没有设置任何 ssh-key,git 也不要求验证?
如果您正在执行 clone
,则不需要传递您的凭据,因为您的存储库是 public.
如果您正在执行 push
,唯一的原因是您正在处理 Windows 并且您已经指定了一次凭据。现在它们存储在凭证管理器中(查看 Q2 的答案)。
Q4) 我怎样才能保护我的 repo 不被外人看到,让他们只能看到它而不能更改它?
- 人们无法更改它,除非您不授权他们(查看问题 1 的答案)
嗨开发者,我是 git 的新手,我有一些关于 GitHub 的问题。 请尽可能回答。
- Q1) 如果我的存储库是 public 并且我没有为我的帐户设置 ssh-key,那么任何人都可以进入我的存储库吗?
- Q2)使用 HTTPS url 进行推送和拉取是否安全?
- Q3)即使我没有设置任何 ssh-key,为什么 git 不要求身份验证?
- Q4)如何保护我的 repo 不被外人看到,而他们无法更改它?
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 的远程集,则每次需要远程操作时都需要传递您的凭据(
push
、pull
、fetch
, ...).您可以将您的凭据保存在 Linux 中的
中的凭据管理器中.git-credentials
文件中(但您的密码将存储在未加密的文本文件中)或者将它们存储在 Windows.
Q3) 为什么即使我没有设置任何 ssh-key,git 也不要求验证?
如果您正在执行
clone
,则不需要传递您的凭据,因为您的存储库是 public.如果您正在执行
push
,唯一的原因是您正在处理 Windows 并且您已经指定了一次凭据。现在它们存储在凭证管理器中(查看 Q2 的答案)。
Q4) 我怎样才能保护我的 repo 不被外人看到,让他们只能看到它而不能更改它?
- 人们无法更改它,除非您不授权他们(查看问题 1 的答案)