1. 程式人生 > 其它 >git伺服器最終搭建

git伺服器最終搭建

git 服務搭建部分

買華為雲最新的ubuntu20版本的伺服器,自帶git不用安裝

adduser git


收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。
這裡是重點,需要滿足三個條件

.ssh目錄的許可權必須是700
.ssh/authorized_keys檔案許可權必須是600
git下的所有檔案都必須是git是擁有者(可能包括.和..)
特別是如果檔案什麼的你是用root建立的就一個個慢慢查著改把。。。
主要修改命令為
chown -R git:git .ssh
chmod 600 authorized_keys
chown -R git:git ..
等等,任何一個東西都不能放過。。大概是這樣

去/srv裡輸入命令
git init --bare sample.git
chown -R git:git sample.git

出於安全考慮,第二步建立的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每次一登入就自動退出

之後就可以使用另一臺機器去克隆庫了
121.36.229.244是ubuntu這臺機器的公網ip
git clone [email protected]:/srv/sample.git
成功的話可以不輸入密碼直接克隆成功: