1,安裝Git所需依賴包
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker
2,卸載CentOS自帶的git
# yum remove git
3,下載較新Git版本
# mkdir /usr/src/tools
# cd /usr/src/tools
# tar -zxvf git-2.8.3.tar
4,安裝Git並添加到環境變量中,Git安裝路徑為
/usr/local/git
# cd git-2.8.3.tar
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc
完畢,查看git版本號
# git --version
5,創建用戶git,用來運行Git服務
# adduser git
# su git
# cd ~
# mkdir .ssh
# touch authorized_keys
在
git用戶的家目錄(/home/git/)創建一個.ssh的目錄,將協同工作人員的SSH公鑰添加到該目錄的authorized_keys文件中。
6,收錄客戶端的SSH公鑰到
/home/git/.ssh/authorized_keys文件中
客戶端使用命令 ssh-keygen -t rsa -C "你的email地址" ,會在~/.ssh/id_rsa.pub生成SSH公鑰,復制給管理員即可。
7,配置服務器端ssh服務
# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /home/git/.ssh/authorized_keys #你的authorized_keys所在路徑
8,初始化git倉庫(裸庫)
# cd /home/git
# mkdir project.git
# git init --bare project.git
9,禁用git用戶shell登錄
# vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改為
git:x:1001:1001:,,,:/home/git:/usr/local/git/bin/git-shell
現在客戶端可以通過 git clone 命令克隆遠程倉庫了,注意這里有些問題需要注意,SSH對公鑰,私鑰的權限和所有權的要求是非常嚴格的,總結如下:
1,下面兩個目錄的所有權必須是git(上面創建的git用戶),所屬組也應該是git,權限必須為700
①/home/git # chmod 700 /home/git
②/home/git/.ssh # chmod 700 /home/git/.ssh
2,公鑰文件的所有權必須是git,所屬組也必須是git,權限必須是644
①/home/git/.ssh/authorized_keys #c hmod 644 /home/git/.ssh/authorized_keys
如果權限不對,會造成不能正常登錄,報錯信息:Permission denied (publickey,gssapi-with-mic.....)