CentOS下搭建Git服務器(基於SSH協議)


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.....)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM