Назад | Перейти на главную страницу

разница между https git clone и ssh git clone

Привет, я использую git некоторое время, но я новичок в корпоративном git. вот что я сделал со своим test-repo Я создал пару ключей ssh ​​и добавил открытый ключ в свое тестовое репо в качестве ключа развертывания. Теперь я могу клонировать свой test-repo из ssh и https однако, когда я добавляю кого-то в качестве соавтора, они могут клонировать репо из https но не из ssh

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

$ ls
example_rsa     example_rsa.pub

$ git clone git@git.example-private.com: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.

Пользователь не может получить доступ к тому же репозиторию git даже после предоставления доступа через ssh, однако пользователь может git клонировать репо, используя https.

git clone git@git.example-private.com: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.

Git использует несколько протоколов для взаимодействия клиент-сервер:

  • http
  • https
  • ssh
  • мерзавец

Когда вы решите использовать ssh для вашего git-сервера вам необходимо предоставить соответствующий ssh-доступ для соавторов, которые будут работать с вашими репозиториями. Существует множество решений для облегчения управления - gitlab (у него тоже есть графический интерфейс), gitolite и многие другие. Git даже поставляется с git-shell - если вы установите его для вновь созданного пользователя, он сможет работать только с git, а не с ssh на сервере. С помощью ssh более безопасен и является лучшим решением (на мой взгляд) для корпоративных сред.

Когда вы используете https в качестве транспортного протокола, вы получаете преимущества (или ограничения) https. Он чаще всего используется, когда у вас есть веб-интерфейс для вашего сервера git (например, cgit), и он позволяет пользователям клонировать репозитории (но не нажимать).

Пожалуйста, посмотрите на этот - подробное объяснение протоколов, используемых в Git.