直接安裝
yum install git
創建git服務器專屬的用戶
useradd git
出于安全考慮,禁止git用戶登陸shell,編輯/etc/passwd文件
vi /etc/passwd
在最后面找到:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
接著在git用戶目錄下創建.ssh目錄和authorized_keys文件,用于存放需要克隆或遠程推送的用戶的公鑰
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
創建git倉庫,--bare 參數創建一個空的倉庫,沒有工作區,只會生成一類用于記錄版本庫歷史記錄的文件。
服務器上的Git倉庫通常都以.git結尾
git init --bare sample.git
然后,把這個倉庫的owner改為git
chown -R git:git sample.git
到這里服務器端的git就安裝完成了。
客戶端克隆git倉庫,需要先在本地生成他們的公鑰,然后把這些公鑰保存到 /home/git/.ssh/authorized_keys
生成公鑰的方法這里以Linux為例子,在客戶端輸入以下命令,然后一路回車
ssh-keygen
在你的用戶目錄下的.ssh/id_rsa.pub,打開復制里面的內容就是了。
然后就可以克隆了,server是你的ip地址,/sample.git 是你的倉庫路徑
git clone git@server:/sample.git
這是ssh的一種連接方式。
如果出現以下情況
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.
檢查一下你的ssh端口號是多少,由于安全原因一般會修改ssh的默認端口號。
然后運行以下命令,port就是你的端口號
git clone ssh://?git@server:port/sample.git
如果是提示需要密碼,有可能是公鑰沒有保存到/home/git/.ssh/authorized_keys,或者用戶權限問題。又或者可以試試重新生成公鑰。