1、安裝git
git
$ sudo apt-get install git
2、建立一個git
用戶,用來運行git
服務shell
$ sudo adduser git
3、客戶端生成密鑰安全
Windows:bash
Git官網(https://git-scm.com/downloads)下載Git for Windows並安裝。服務器
任意位置打開Git Bash,輸入如下命令:app
$ ssh-keygen -t rsa -C "您的郵箱地址"
Linux:ssh
$ mkdir .ssh $ cd .ssh/ $ ssh-keygen -t rsa -C "您的郵箱地址"
4、建立證書登陸:code
收集全部須要登陸的用戶的公鑰,就是他們本身的id_rsa.pub
文件,把全部公鑰導入到/home/git/.ssh/authorized_keys
文件裏,一行一個。server
5、初始化Git倉庫:rem
先選定一個目錄做爲Git倉庫,假定是/git/test.git
,在/git
目錄下輸入命令:
$ sudo git init --bare test.git
Git就會建立一個裸倉庫,裸倉庫沒有工做區,由於服務器上的Git倉庫純粹是爲了共享,因此不讓用戶直接登陸到服務器上去改工做區,而且服務器上的Git倉庫一般都以.git
結尾。而後,把owner改成git
:
$ sudo chown -R git:git test.git
6、禁用shell登陸:
出於安全考慮,第二步建立的git用戶不容許登陸shell,這能夠經過編輯/etc/passwd
文件完成。找到相似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git
用戶能夠正常經過ssh使用git,但沒法登陸shell,由於咱們爲git
用戶指定的git-shell
每次一登陸就自動退出。
7、克隆遠程倉庫:
如今,能夠經過git clone
命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone git@server:/git/test.git Cloning into 'test'... warning: You appear to have cloned an empty repository.
git是經過ssh來clone代碼的,上述命令將去鏈接ssh默認的22端口。若是改過ssh端口,上述代碼會失效。
$ git clone git@server:/git/test.git Cloning into 'test'... ssh: connect to host server port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
當出現這種狀況時就應該使用另一條命令來clone代碼了:
$ git clone ssh://git@server:port/git/test.git
Done.