默默的幾天又過去了,只想說靜靜,出去走走…扯淡,接下來說說Linux下安裝Git服務器
這裏就不介紹Git是什麼了,直接進入安裝…
一、安裝前可能遇到的情況
wget發現報錯command not found,是因爲沒有安裝wget軟件包。
解決方案:
1. rpm 下載源地址:http://mirrors.163.com/centos/6.4/os/x86_64/Packages/
下載wget的RPM包:http://mirrors.163.com/centos/6.4/os/x86_64/Packages/wget-1.12-1.4.el6.x86_64.rpm
rpm ivh wget-1.12-1.4.el6.x86_64.rpm 安裝即可 。
2. yum安裝
yum -y install wget
ok,wget命令可以正常使用。go on
二、搭建Git服務器
準備下資源列表
[root@localhost files]# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
[root@localhost files]# rpm -ivh epel-release-5-4.noarch.rpm
Preparing… ########################################### [100%]
package epel-release-5-4.noarch is already installed
[root@localhost files]#yum list
1.首先需要安裝Git,可以使用yum源在線安裝:
[root@localhost git]#yum install -y git
2.創建一個git用戶,用來運行git服務
[root@localhost git]# adduser git
3.初始化git倉庫:這裏我們選擇/data/git/firstgit.git來作爲我們的git倉庫
[root@localhost git]# git init --bare firstgit.git
執行以上命令,會創建一個裸倉庫,裸倉庫沒有工作區,因爲服務器上的Git倉庫純粹是爲了共享,所以不讓用戶直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git結尾。然後,把owner改爲git:
[root@localhost git]# chown git:git learngit.git
4.1創建客戶端登錄證書(創建SSH Key)
注,收集所有需要登錄的用戶的公鑰,就是他們自己生成的id_rsa.pub文件,把所有公鑰複製到/home/git/.ssh/authorized_keys文件裏,一行一個。
1).客戶端生成id_rsa.pub文件的命令
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub
ssh-rsa 79:2f:6f:4b:69:7a:db:24:ad:4b:57:7d:2b:aa:7d:9f [email protected]
注,一路回車即可,將生成的id_rsa.pub,複製給管理員,幫你在服務器上增加一下,下次你用git時就不需要輸入用戶名和密碼了。
2).查看服務器上authorized_keys文件
[root@git ~]# cat /home/git/.ssh/authorized_keys
ssh-rsa
79:2f:6f:4b:69:7a:db:24:ad:4b:57:7d:2b:aa:7d:9f [email protected]
說明:我這裏有三個用戶登錄服務器,所以我這裏就有一個ssh-rsa,大家可以看一下。
4.2Git服務器打開RSA認證
然後就可以去Git服務器上添加你的公鑰用來驗證你的信息了。在Git服務器上首先需要將/etc/ssh/sshd_config中將RSA認證打開,即:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
5.禁用shell登錄
注,出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
[root@git ~]# cat /etc/passwd | grep git
git:x:1001:1001:git version control:/home/git:/bin/bash
改爲:
[root@git ~]# vim /etc/passwd
git:x:1001:1001:git version control:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因爲我們爲git用戶指定的git-shell每次一登錄就自動退出。
6.克隆遠程倉庫
注,現在可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone [email protected]:/data/git/project.git,
其中git用戶名,192.168.244.128服務器,/data/git/firstgit.git是倉庫路徑。好了,到這裏服務器的搭建到這裏就完成了,下面我們來安裝一下客戶端。
window 安裝git bash操作
人數過多,百十人;以及權限控制參考一下:
要方便管理公鑰,用Gitosis;
要像SVN那樣變態地控制權限,用Gitolite。
《爲你而廚·NoSee》