gitlab兩種鏈接方式:ssh和http配置介紹

 

gitlab環境部署好後,建立project工程,在本地或遠程下載gitlab代碼,有兩種方式:ssh和httphtml

1)ssh方式:這是一種相對安全的方式
要求將本地的公鑰上傳到gitlab中,以下圖:git

window客戶機設置ssh方式鏈接gitlab,請見http://www.cnblogs.com/kevingrace/p/5651402.html(文章底部有介紹)安全

2)http鏈接方式bash

這種方式要求project在建立的時候只能選擇「Public」公開狀態,Private和Internal私有模式下不能使用http方式進行鏈接。(ssh方式在三種模式下均可以)。使用http方式直接鏈接gitlab顯然沒有ssh鏈接方式安全,可是也能夠作些安全設置,好比在gitlab本機的iptables裏作端口限制(如上是8081端口),添加白名單等。ssh

 

 

===================================================
gitlab上建立的項目倉庫,要注意該倉庫下的members權限,若是某個gitlab用戶沒有設置在該倉庫members權限下,則使用該gitlab用戶進行git clone操做能夠,可是進行git push則會失敗!報錯:remote: GitLab: You are not allowed to push code to protected branches on this project.gitlab

好比,使用gitlab的kevin用戶進行git上傳下載操做,kevin用戶默認沒有加到scanhost.git項目倉庫的member權限下。
1)git clone是能夠的
[root@test ~]# git config --global user.name "王士博"
[root@test ~]# git config --global user.email "kevin@veredholdings.com"
[root@test ~]# git clone http://gitlab.kevin-inc.com/fanglianchao/scanhost.git
[root@test ~]# cd scanhost

2)git push則不容許,沒有權限
[root@test ~]# touch README.md
[root@test ~]# git add README.md
[root@test ~]# git commit -m "add README"
[root@test ~]# git push -u origin master
.......
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://gitlab.kevin-inc.com/fanglianchao/scanhost.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://gitlab.kevin-inc.com/fanglianchao/scanhost.git'

須要將kevin用戶加入到scanhost.git項目倉庫的member權限裏,這樣就有權限進行git push了!
相關文章
相關標籤/搜索