搭建 git 伺服器

2021-09-27 07:49:25 字數 2347 閱讀 5969

第一步,安裝 git:

# ubuntu

apt-get

install

git# centos

yum install

git -y

安裝成功,查詢 git 版本:

[root@***]

# git version

git version 1.8.3.1

第二步,在伺服器上,建立乙個git 使用者組和 git 使用者:

# 新增使用者組

groupadd

git# 新增使用者並歸屬到 git 使用者組

adduser git -g git

第三步,建立證書登入:

把所有需要對 git 倉庫操作的使用者的公鑰,就是他們自己的 id_rsa.pub 檔案,一般在~/.ssh路徑下,~表示使用者路徑。

# window

$ ls -l c:/users/moses/.ssh

total 9

-rw-r--r-- 1 moses 197121 2655 8月 10 19:23 id_rsa

-rw-r--r-- 1 moses 197121 565 8月 10 19:23 id_rsa.pub

-rw-r--r-- 1 moses 197121 1734 9月 16 22:52 known_hosts

如果沒有,可以使用ssh-keygen生成,也可以指定 rsa 演算法生成ssh-keygen -t rsa。如果不嫌麻煩,一路回車就可以。為了安全起見,個人建議輸入passphrase,但是要記住它,後面提交**都會用到。

匯入到/home/git/.ssh/authorized_keys檔案裡,一行乙個。如果沒有該檔案建立它。另外,如果你要修改這個路徑,可以修改 ssh 的配置,一般路徑在/etc/ssh/sshd_config

第四步,初始化 git 倉庫:先選定乙個目錄作為 git 倉庫,假定是/home/git/repos/sample.git,在目錄下輸入命令:

# 進入到路徑下

cd /home/git/repos

# 建立乙個空倉庫

git init --bare sample.git

git 就會建立乙個空倉庫,空倉庫沒有工作區,不讓使用者直接在該倉庫下操作,而需要 clone ,也就是純屬為了共享。另外,伺服器上的 git 倉庫通常都以 .git 結尾,意為它是乙個 git 倉庫,如果不以 .git 結尾也沒關係,但 clone 時,別人可能誤認為這不是乙個 git 倉庫。

然後,把倉庫歸屬到 git 使用者組和 git 使用者下:

chown -r git:git sample.git
這樣做,第二步才有意義。

第五步,禁用 shell 登入:第二步建立的 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 每次一登入就自動退出,這就安全多了。

第六步,轉殖遠端倉庫:現在,可以通過 git clone 命令轉殖遠端倉庫了,在各自的電腦上執行:

git clone git@server:/home/git/repos/sample.git

# 或者

git clone ssh://git@server/home/git/repos/sample.git

注意:server 是自己的伺服器 ip 或者指向伺服器的網域名稱,後面的/home/git/repos/sample.git是倉庫在伺服器的路徑,得根據實際情況變換。

如果 clone 時提示沒有許可權或者倉庫不存在,則在未禁用 git 使用者 shell 登入前,第四步時先切換到 git 使用者,再初始化 git 空倉庫!這樣也可以省去倉庫歸屬 chown 這一步。

su

git# su: switch user

參考:

Git 搭建git伺服器

環境 ubuntu16.4 1.以root使用者登陸linux後台,執行下面的命令安裝git apt install git2.建立git使用者 adduser git3.建立倉庫目錄 su git mkdir p repository myself.git4.初始化倉庫 cd repository...

Git 搭建Git伺服器

在遠端倉庫一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺服器...

搭建Git伺服器

在 遠端倉庫 一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺...