linux中git伺服器搭配教程

來源:互聯網
上載者:User

例子一

先看療效:
1. 無需公開金鑰

2. 只需要幾個最常用的Linux命令就可以搭建

 

看步驟
1. 準備Linux伺服器, 安裝好git(一般都是預設裝好的)

2. 命令列操作

useradd git   #建立一個git帳號

passwd git    #設定git帳號的密碼

su – git    #切換到git帳號

cd ~  #轉到使用者目錄

mkdir 項目名稱.git   #建立項目git檔案夾

cd 項目名稱.git

git –-bare –share init   #初始化git庫

 

3. 馬上拿起你的git用戶端( 烏龜, SourceTree均可)輸入這樣格式的地址git@ip:/path/to/project.git

例如: git@192.168.1.2:/home/git/YourProject.git

git pull時, 需要輸入密碼, 就輸入上面建立好的git帳號的密碼就可以

開始使用吧!

 

Tips
這種方法搭建的git伺服器僅限於小團隊和對貢獻代碼不敏感的項目而生

git本身的公開金鑰是為了防止別人偽造使用者名稱進行虛假提交. 但這個方法繞開了這點

想開新的git庫時, 切記使用git帳號去重複以上步驟, 若使用root層級帳號建立的檔案夾使用用戶端時會遇到許可權不足的提示


例子2

1、公開金鑰的產生

任何一個需要使用git伺服器的工程師都需要產生一個ssh的公開金鑰。可以通過ssh-keygen來產生

~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/shizhen/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/shizhen/.ssh/id_rsa.
Your public key has been saved in /home/shizhen/.ssh/id_rsa.pub.
The key fingerprint is:
a8:19:49:f4:e6:e8:4f:8f:3e:47:c9:19:4c:09:ee:7f shizhen@sz-desktop
The key's randomart image is:

首先會讓你輸入要儲存公開金鑰的位置,直接斷行符號即可,接著會提示讓你重複一個密碼兩次,如果不想再使用公開金鑰的時候輸入密碼,直接斷行符號即可。完成後會在home目錄下的.ssh目錄中產生兩個檔案id_rsa(私人密鑰)和id_rsa.pub(公開金鑰)。

將產生的公開金鑰即id_rsa.pub發給git倉庫的管理者。

2、架設伺服器

(1)伺服器端
最好建立一個git組,讓後再添加一個git使用者,並且添加到該組當中。

sudo adduser git
su git
cd ~
mkdir .ssh

在git使用者建立一個.ssh的目錄,將開發人員的SSH公開金鑰添加到git這個使用者的authorized_keys這個檔案當中。如有zhangsan,lisi兩個開發人員。

cat /tmp/id_rsa_zhangsan.pub >> ~/.ssh/authorized_keys
cat /tmp/id_rsa_lisi.pub >> ~/.ssh/authorized_keys

建立一個空的倉庫

cd work
mkdir project.git
cd project.git
git --bare init

使用--bare會初始化一個不帶任何工作目錄的倉庫,不會看到工程源碼。
為了不使開發人員每次clone代碼的時候都輸入ip地址,可以採用DNS的方式。具體操作如下

sudo vim /etc/hosts

在裡面加入下面一行

192.168.1.100 gitserver

(2)開發人員端

若沒有倉庫的情況下,需要首先建立一個倉庫。在需要建立倉庫的,目錄下執行以下的命令。

cd my_project
git init
git add . (將所有檔案加入倉庫管理)

git commit -m "initial commit"
git remote add origin git@gitserver:/home/git/work/project.git (即:git@192.168.1.100:/home/git/work/project.git)
git push origin master

若本地已有倉庫,但想把其中的代碼push到我們新的伺服器上,可以直接用下面的命令
把想要push的分支代碼建立成master分支

git checkout -b master xxxxx
git push origin master

這樣一個簡單的伺服器就可以工作了,其他的開發人員可以直接從伺服器上進行代碼開發了。
為了保護git伺服器,限制開發人員登陸伺服器,可以採用如下的措施。

sudo vim /etc/passwd

在檔案結尾找到這樣的類

git:x:1001:1001:,,,:/home/git:/bin/bash
將其中的/bin/bash/改為/user/bin/git-shell

現在開發人員只能通過SSH來推送和擷取代碼,不能登陸ssh服務端了。

3.問題

?在的 ssh 使用同?擁姆椒??霈F???息

Agent admitted failure to sign using the key

解?Q方式 使用 ssh-add 指令將私密金鑰 加進來 (根據個人的密匙命名不同更改 id_rsa)
即各自的開發人員執行命令
ssh-add id_rsa

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.