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

Привет, я использую git некоторое время, но я новичок в корпоративном git. Вот Это то, что я сделал с моим тестовым репо . Я создал пару ключей ssh ​​и добавил открытый ключ в мое тестовое репо в качестве ключа развертывания. Теперь я могу клонировать свое тестовое репо из 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.
2
задан 16 February 2017 в 14:50
1 ответ

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

  • http
  • https
  • ssh
  • git

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

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

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

2
ответ дан 3 December 2019 в 11:30

Теги

Похожие вопросы