Ssh
https git clone 和 ssh git clone 的區別
嗨,我現在使用 git 有一段時間了,但是我是企業 git 的新手。這是我對我所做的事情,
test-repo
我創建了一個 ssh 密鑰對並將公鑰添加到我的測試儲存庫中作為部署密鑰。現在我可以複製我test-repo
的來源ssh
,https
但是當我將某人添加為協作者時,他們可以從中複製 repo,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.
即使在通過 ssh 授予訪問權限後,使用者也無法訪問相同的 git 儲存庫,但是使用者可以使用 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(它也有 GUI)、gitolite 和許多其他解決方案。Git 甚至帶有一個git-shell
- 如果你將它設置為一個新創建的使用者,他將只能使用 git,而不能 ssh 進入伺服器。使用ssh
更安全,是企業環境更好的解決方案(我認為)。當您使用 https 作為傳輸協議時,您將獲得 https 的優勢(或限制)。當您的 git 伺服器(例如 cgit)有一個 Web 界面並且它允許使用者複製儲存庫(但不能推送)時,它最常使用。
請看一下這個——關於 Git 中使用的協議的詳細解釋。