https git clone 和 ssh git clone 之间的区别

https git clone 和 ssh git clone 之间的区别

嗨,我使用 git 已经有一段时间了,但是我对企业 git 还不熟悉。下面是我所做的操作:test-repo我创建了一个 ssh 密钥对,并将公钥作为部署密钥添加到我的测试存储库中。现在我可以test-repo从中克隆我的sshhttps但是当我将某人添加为协作者时,他们可以从中克隆存储库,https但不能从中克隆ssh

ssh-keygen -b 4096 -t rsa -f example_rsa -P "" -C ""

$ ls
example_rsa     example_rsa.pub

$ git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Warning: Permanently added the ECDSA host key for IP address '10.0.1.100' to the list of known hosts.
warning: You appear to have cloned an empty repository.

即使通过 ssh 授予访问权限后,用户也无法访问相同的 git repo,但是用户可以使用 git clone 该 repo https

git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

git clone https://git.example-private.com/star/test-repo.git
Cloning into 'test-repo'...
warning: You appear to have cloned an empty repository.

答案1

Git 使用多种协议进行客户端与服务器通信:

  • http
  • https
  • 远程控制
  • git

当您决定使用sshgit 服务器时,您需要为将要使用您的存储库的协作者提供相关的 ssh 访问权限。有很多解决方案可以简化管理 - gitlab(它也有 GUI)、gitolite 和许多其他解决方案。Git 甚至附带一个git-shell- 如果您将其设置为新创建的用户,他将只能使用 git,而不能 ssh 进入服务器。使用ssh更安全,并且是企业环境的更好解决方案(我认为)。

当您使用 https 作为传输协议时,您会获得 https 的优势(或局限性)。当您的 git 服务器(例如 cgit)具有 Web 界面时,它最常使用,并且它允许用户克隆存储库(但不允许推送)。

请查看- 关于 Git 中使用的协议的详细解释。

相关内容