當前位置:首頁 » 雲伺服器 » 搭建git伺服器合並許可權

搭建git伺服器合並許可權

發布時間: 2022-07-28 13:25:06

『壹』 windows下git伺服器怎麼搭建

安裝msysgit

安裝步驟此處略去。

END
安裝CopSSH

安裝步驟此處略去。
END
修改配置

修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」:

END
生成用戶帳號

1
在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期:

2
將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組):

END
激活用戶

1
在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):

2
進入COPSSH Control Panel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務):

3
選擇Users頁面:

4
點選Add按鈕,出現如下導航對話框:

5
選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名:

6
選擇Forward按鈕,進入如下頁面,選擇linux shell and Sftp,所有選項選中:

7
選擇Forward按鈕,進入確認頁面,選擇Apply:

8
回到如下頁面,選擇Apply後,關閉。

END
公鑰文件上傳

1
從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\Program Files\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名);
2
Windows啟動程序組中運行Start a Unix BASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):

3
運行如下unix命令行,如運行未出錯,則完畢。

END
生成Git庫容器目錄

1
在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄;
2
滑鼠右鍵點擊該目錄,選擇共享和安全…;
3
在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser;
4
確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。
END
確認防火牆開放了22埠

確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。
END
修改用戶登錄運行腳本

1
修改C:\Program Files\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:

『貳』 如何創建自己的私有git伺服器

通過以下的步驟,你將在伺服器上搭建並使用你自己的Git服務,例如myhost.example.com。其中的一些步驟,像email通知,限制用戶的許可權,特定分組的接入管理,都是依據你的要求和現實狀況的可選項。還有很多命令,你需要root許可權才能執行,所以別忘了用sudo,或者(最好不要)直接切換到root來執行。
為有讀寫許可權的用戶建立一個分組。根據你的操作系統,你可以用groupadd命令來實現,用vigr來編輯分組文件,或者直接編輯/etc/group文件。在最後,你會在/etc/group文件中看到如下一行
repogroup:*:10005:marry,john,violet

其中,repogroup是准許接入這個倉庫的組的名字。10005是一個獨一無二的分組識別數字,marry,john,violet則是獲准接入這個倉庫的用戶。
決定Git倉庫的路徑。它既可以放在你的home路徑下(e.g. /home/yourname/gitroot),也可以放在一個專用的路徑下(e.g. /var/gitroot).
配置許可權,讓Git用戶可以訪問這個目錄
chmod g+rx /path-to/gitroot
chown :grouprepo /path-to/gitroot

建立新的Git倉庫,叫做newrepo
cd /path-to/gitroot
git init --bare newrepo.git

建立路徑認證,以允許用戶組訪問,同時有針對性的設置Git
cd newrepo.git
chown -R :grouprepo .
git config core.sharedRepository group
find . -type d -print0 | xargs -0 chmod 2770
find . -type f -print0 | xargs -0 chmod g=u

設置提交(commit)的email通知(commit是一條命令),這樣當有新的修改提交到倉庫的時候,開發者們將會收到一封關於修改內容一覽的電子郵件。
echo 'One-line project description' >description
git config --local hooks.mailinglist [email protected],[email protected],...
git config --local hooks.emailprefix '[DI-PR] '
git config --local hooks.showrev "git show -C %s; echo"
git config --local hooks.emailmaxlines 100

通過設置一個稱為鉤子(hook)的東東,來創建這些email通知。
cd hooks
cp post-receive.sample post-receive
chmod +x post-receive

從post-receive的腳本中移除掉最後一行注釋的#字型大小,最後語句應該是這樣的
. /path-to-hooks/post-receive-email

在你的庫中先放入一個文件(比如README)。為了避免其他用戶在第一次提交時遇到奇怪的錯誤信息時感到困惑,這是有必要的。
cd to-your-personal-working-directory
git clone myhost.example.com:/path-to/gitroot/newrepo.git
echo "Short project description" >README.txt
git add README.txt
git commit -a -m "Add README file"
git push origin master # 第一次僅僅需要T"origin master" 這個參數

為倉庫的其他用戶建立賬戶。依據你系統的不同,你可以通過useradd 或者adser來實現。
設置用戶可以通過公/私鑰配對來訪問。這包括以下幾步:
1)已經有公鑰的用戶,只需要把公鑰發給你就好。
2)沒有公鑰的用戶,必須用ssh-keygen命令來生成一個,然後把.ssh/id_rsa.pub發給你就可以了。
3)之後你必須在他們對應的賬戶下面建立這種公/私鑰配對。復制他的公鑰,然後順序執行下面的命令。
sudo su - username
mkdir -p .ssh
cat >>.ssh/authorized_keys <<\EOF
paste-key-as-one-line
EOF
exit

改變用戶的賬戶讓他們使用受限的shell。如果你想讓你添加進來的用戶僅僅使用Git,而不是Unix的所有東西,那麼就設置他們的賬戶,讓他們只能使用Git。Git提供了這種專為這種需求設計的受限shell。它通常被安裝在 /usr/libexec/git-core/git-shell or /usr/local/libexec/git-core/git-shell。因此,對所有你想限制許可權的用戶,你可以執行以下命令。
sudo chsh -s /usr/libexec/git-core/git-shell username

告訴你的用戶,用下面的語句來克隆倉庫到本地。
git clone myhost.example.com:/path-to/gitroot/newrepo.git

到了這里,恭喜你,你成功了!

『叄』 搭建git伺服器需要什麼樣的配置

搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git

第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git

第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git

第五步,禁用shell登錄:
出於安全考慮,第二步創建的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:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就簡單了。

管理公鑰
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。
這里我們不介紹怎麼玩Gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的Linux管理員問題不大。

管理許可權
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼託管而開發的,所以Git也繼承了開源社區的精神,不支持許可權控制。不過,因為Git支持鉤子(hook),所以,可以在伺服器端編寫一系列腳本來控制提交等操作,達到許可權控制的目的。Gitolite就是這個工具。

『肆』 如何在mac下遠程搭建git伺服器

首先要有 ssh遠程登陸的工具,比如secureCRT等

方案一 基於SSH直接搭建
Git支持的協議主要是四種:
本地: 需要文件共享系統,許可權不好控制
HTTP:速度慢
SSH:同時支持讀寫操作,不支持匿名的讀取(Git默認協議)
GIT:最快
從搭建的難易程度和特點綜合篩選,最合適的還是ssh,並且大部分伺服器上基本都有ssh服務,所以省去了不少麻煩。一個最基本的思路是給每一個人一個ssh帳號,這樣大家就可以通過用戶名和口令來訪問了,但是顯然這不是一個好的選擇,這個做法有些多餘,並且對於repo的許可權很難管理。
在使用Github的時候,會利用rsa.pub公鑰/私鑰的方式,這樣在服務端擁有用戶的公鑰(*.pub)之後就可以,跨過繁瑣的口令,直接認證提交了,而服務端也會根據不同的用戶身份,對其許可權有著更加靈活的管理。因此我們也採用這種方式。
服務端
為了使遠程庫訪問更加直觀,先在伺服器上創建一個名為git的賬戶,這樣以後clone的時候就如下面的格式了:

git clone git@server:some.git

創建新的用戶,創建repo等目錄

$sudo adser git
$su git
$cd ~
$mkdir repos

在HOME下的.ssh目錄,如果沒有則創建,創建一個authorized_keys文件,這個文件就是用來管理所有git用戶的公鑰的,也就是這裡面的用戶對於項目有著R+W的許可權。
客戶端
對於每一個客戶端,我們需要生成一對密鑰和公鑰,如果是Github用戶,那麼.ssh目錄下,一定有id_rsa.pub和id_rsa兩個文件,其中第一個是系統生成的公鑰,另一個是自己要保存好的密鑰。如果沒有的話,可以在終端執行:ssh-keygen來生成,完成後,將自己的公鑰提交給管理員,這就是一個注冊的行為。
完成
最後一步,管理員將團隊成員的公鑰添加到authorized_keys中,比如將同學susie加入:

$ cat susie.pub >> authorized_keys

至此,大家可以通過git@server:repos/some.git來訪問公共的版本庫了。
問題
安全問題,成員可以登錄git用戶的shell,細節許可權如分支等不好控制
管理麻煩,新建repo,或者增加成員比較麻煩,尤其是修改的時候
方案二 使用Gitolite服務
Gitolite 也是基於SSH協議構建的方便管理git repo的應用,可以通過其源碼安裝.
安裝
安裝按照官方給定的文檔就可以輕易的實現:

$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub

如果執行最後一條命令的時候,gitolite不識別,則可以通過下面兩種方式解決:
將gitolite添加到PATH裡面
通過$HOME/bin/gitolite setup -pk YourName.pub 執行
至此,gitolite在服務端,搭建完畢,會發現此時HOME目錄下增加了一個文件projects.list和一個目錄repositories,後者就是我們的版本倉庫了,每當新建repo的時候,就會在其中創建。
使用
是時候說一下gitolite的管理模式了,他會創建一個gitolite-admin的repo,管理員就是通過像這個repo提交配置文件而實現對git伺服器的控制的。
首先,將這個repo導入到我們的workspace:在此之前,需要配置本地的ssh,gitolite要求管理員的本地密鑰和其注冊公鑰的名字一致,比如我們安裝的時候指定 -pk後面為 admin.pub 則管理員本地需要由admin對應的私鑰。我們可以通過~/.ssh/config來進行配置(註:有些系統可以用conf,Mac OSX 下無效,只能用config).

host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin

這樣,當我們訪問gitolite的時候就會自動根據配置文件執行,配置完成後可以根據下面的命令,將gitolite-admin轉移到本地。

git clone gitolite:gitolite-admin.git

克隆完成後,可以發現,gitolite-admin下面有兩個目錄,其中conf保存配置文件,我們可以通過編輯裡面的gitolite.conf文件,管理git伺服器,keydir目錄保存用戶的公鑰pub文件。
當我們講修改後的repo 提交的時候,gitolite就會自動的應用這些配置,管理過程就方便了很多。
配置規則
打開gitolite.conf文件可以看到其中的示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:

repo foo
RW+ = alice
RW = bob
R = carol

上面的配置文件就是新建了一個repo foo,並且添加了三位項目成員,每一個人的許可權不同。提交push後,管理便生效了。

『伍』 windows系統怎麼搭建git伺服器

安裝msysgit 安裝步驟此處略去。 安裝CopSSH 安裝步驟此處略去。 修改配置 修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,確保如下行為非注釋行,且設置為「no」: 生成用戶帳號 1在伺服器上生成Windows用戶,取消用戶下次登錄時須更改密碼,設置密碼永不過期: 2將該用戶隸屬於GitUser組(如尚未生成改組,則先生成改組): 激活用戶 1在Windows啟動程序組中,運行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe): 2進入COPSSH ControlPanel應用對話框,正常情況下服務應該為正在運行(圖標為綠色,如為紅色,則可嘗試點選該按鈕,啟動該服務): 3選擇Users頁面: 4點選Add按鈕,出現如下導航對話框: 5選擇Forward按鈕,出現如下頁面,選擇欲激活的用戶對應的域名及用戶名: 6選擇Forward按鈕,進入如下頁面,選擇Linuxshell and Sftp,所有選項選中: 7選擇Forward按鈕,進入確認頁面,選擇Apply: 8回到如下頁面,選擇Apply後,關閉。 公鑰文件上傳 1從用戶處取得對應帳戶的公鑰文件authorized_keys,復制到C:\ProgramFiles\ICW\home\ricky\.ssh目錄下(\ricky\是對應的用戶名); 2Windows啟動程序組中運行Start a UnixBASH Shell(或Windows運行中運行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i): 3運行如下unix命令行,如運行未出錯,則完畢。 生成Git庫容器目錄 1在伺服器硬碟上生成一個目錄,用來容納Git庫,比如生成E:\ GITTestRepo\目錄; 2滑鼠右鍵點擊該目錄,選擇共享和安全…; 3在彈出的該目錄屬性對話框的安全頁中加入用戶對應的組GitUser; 4確認該用戶組許可權設置了允許修改、讀取和運行、列入文件夾目錄、讀取、寫入,選擇確定後完畢。 確認防火牆開放了22埠 確認伺服器的防火牆沒有禁止22埠的TCP/IP通信。 修改用戶登錄運行腳本 1修改C:\ProgramFiles\ICW\home\ricky\.bashrc文件(\ricky\是對應的用戶名),在文件最後加入如下行:

『陸』 linux系統下怎麼搭建git伺服器

我們很多人知道Git可能是從Github開始的。因為Github是如此流行,幾乎所有寫代碼的人都知道它,以至於一提到Git就以為是Github,其實兩者並沒有多少關系,只是名字類似而已(這有點像Java和JavaScript)。
152855_dxab_940492.png

實際上,Git是一個分布式版本控制軟體,原來是Linux內核開發者Linus Torvalds為了更好地管理Linux內核開發而創立的。雖然Git比SVN優秀很多,但它們最初被設計出來的想法是一致的,那就是版本控制。而Github卻是一個網站,充當Git公共伺服器的作用,只要擁有Github賬號的人都可以把自己的項目託管在那裡,如果你捨不得花些錢,你的項目是強制公開的。所以,Github就是一個通過Git協議為眾多開發者提供代碼託管的地方,同時它提供了很多特性,第一次使得大家可以這么公開地討論起各自的項目。

153043_4iw8_940492.png

上面之所以說這么多,是因為今天要講的Gitosis有點類似Github的功能。什麼意思呢?就是我們可以在自己的伺服器上安裝Gitosis,那麼這台伺服器就可以向Github一樣對外提供代碼託管服務了,這對於很多不願意把自己的代碼公諸於世的公司來說最好不過了。

這里以CentOS充當伺服器為例給大家講解一下Gitosis的安裝和配置。

1.編譯安裝git

yum install git

2.安裝gitosis

$ yum install python python-setuptools
$ git clone git://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ python setup.py install
網址:https://github.com/res0nat0r/gitosis

3.在開發機器上生成公共密鑰(用來初始化gitosis)

$ ssh-keygen -t rsa #不需要密碼,一路回車就行(在本地操作)
$ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上傳你的ssh public key到伺服器
4.初始化gitosis[伺服器端]

$ adser git # 新增一個git用戶(先添加用戶組 groupadd git)
$ su git # 切換倒git用戶下
$ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是剛剛傳過來的,注意放在/tmp目錄主要是因為此目錄許可權所有人都有定許可權的
$ rm /tmp/id_rsa.pub # id_rsa.pub已經無用,可刪除.
5.獲取並配置gitosis-admin [客戶端]

$ git clone git@xxx:gitosis-admin.git # 切換到root用戶並在本地執行,獲取gitosis管理項目,將會產生一個gitosis-admin的目錄,裡面有配置文件gitosis.conf和一個 keydir 的目錄,keydir目錄主要存放git用戶名
$ vi gitosis-admin/gitosis.conf # 編輯gitosis-admin配置文件
如果無法git clone的話,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git

# 在gitosis.conf底部增加

[group 組名]
writable = 項目名
members = 用戶 # 這里的用戶名字 要和 keydir下的文件名字相一致
# VI下按ZZ(大寫)兩次會執行自動保存並退出,完成後執行

$ cd gitosis-admin
$ git add .
$ git commit -a -m 「xxx xx」 # 要記住的是,如果每次添加新文件必須執行git add .,或者git add filename,如果沒有新加文件,只是進行修改的話就可以執行此句。
# 修改了文件以後一定要PUSH到伺服器,否則不會生效。

$ git push
如果在git push的時候,遇到錯誤「ddress 192.168.0.77 maps to bogon, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!」,解決為修改/etc/hosts文件,將ip地址與主機名對應關系寫進去就可以了。

注意:這里我們並沒有進行任何的修改的,現在只有一個管理git的項目。下面的為新添加項目的配置,大家經常用到的也就是下面的操作的。

新建項目

到此步就算完成gitosis的初始化了。接下來的是新建一個新項目到伺服器的操作,如第5步中配置gitosis.conf文件添加的是

[group project1] # 組名稱
writable = project1 # 項目名稱
members = xxx # 用戶名xxx一定要與客戶端使用的用戶名完全一樣,否則無許可權操作
提交修改並更新到git server服務端

$ git commit -a -m 「添加新項目project1,新項目的目錄是project1,該項目的成員是xxx「 # 「」里的內容自定
$ git push
將新創建的項目提交到git server 上進行登記。以便客戶可以操作新項目.

# 在客戶端創建項目目錄(客戶端,當前用戶為 XXX )

現在回到開發者客戶端,上面創建了一個新項目project1並提交到了git server 。我們這里就創建此項目的信息.注意 項目名稱 project1要與gitosis.conf文件配置一致,

$ mkdir /home/用戶/project1
$ cd /home/用戶/project1
$ git init
$ git add . # 新增文件 留意後面有一個點
$ git commit -a -m 「初始化項目project1″
# 然後就到把這個項目放到git server伺服器上去.

$ git remote add origin git@xxx:project1.git # xxx為伺服器地址
$ git push origin master
# 也可以把上面的兩步合成一步

$ git push git@xxx:project1.git master
說明:如果在執行 git push origin master 的時候,提示以下錯誤:
error: src refspec master does not match any.
error: failed to push some refs to 『[email protected]:pro2.git』

這是由於項目為空的原因,我們在項目目錄里新創建一個文件。經過->add -> commit -> push 就可以解決了

$ touch a.txt
$ git add a.txt
$ git commit -a -m 『add a.txt』
$ git push
————————————————————————————————

如果在git clone的時候遇到「

error: cannot run ssh: No such file or directory – cygwin git
」錯誤,則表示本機沒有安裝ssh命令。安裝方法請參考:http://blog.haohtml.com/archives/13313

有時候我們要更換電腦來重新開發項目。這個時候,只需要將id_rsa私鑰放在home目錄里的.ssh目錄里就可以了。

『柒』 linux怎麼搭建git伺服器

GitHub就是一個免費託管開源代碼的遠程倉庫。但是對於某些視源代碼如生命的商業公司來說,既不想公開源代碼,又捨不得給GitHub交保護費,那就只能自己搭建一台Git伺服器作為私有倉庫使用。
搭建Git伺服器需要准備一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。
假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。
第一步,安裝git:
$ sudo apt-get install git

第二步,創建一個git用戶,用來運行git服務:
$ sudo adser git

第三步,創建證書登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
$ sudo chown -R git:git sample.git

第五步,禁用shell登錄:
出於安全考慮,第二步創建的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:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就簡單了。

『捌』 如何在mac系統下搭建git伺服器

Git支持的協議主要是四種:
本地: 需要文件共享系統,許可權不好控制
HTTP:速度慢
SSH:同時支持讀寫操作,不支持匿名的讀取(Git默認協議)
GIT:最快

搭建的難易程度和特點綜合篩選,最合適的還是ssh,並且大部分伺服器上基本都有ssh服務,所以省去了不少麻煩。一個最基本的思路是給每一個人一個
ssh帳號,這樣大家就可以通過用戶名和口令來訪問了,但是顯然這不是一個好的選擇,這個做法有些多餘,並且對於repo的許可權很難管理。
在使用Github的時候,會利用rsa.pub公鑰/私鑰的方式,這樣在服務端擁有用戶的公鑰(*.pub)之後就可以,跨過繁瑣的口令,直接認證提交了,而服務端也會根據不同的用戶身份,對其許可權有著更加靈活的管理。因此我們也採用這種方式。
服務端
為了使遠程庫訪問更加直觀,先在伺服器上創建一個名為git的賬戶,這樣以後clone的時候就如下面的格式了:

git clone git@server:some.git

創建新的用戶,創建repo等目錄

$sudo adser git
$su git
$cd ~
$mkdir repos

在HOME下的.ssh目錄,如果沒有則創建,創建一個authorized_keys文件,這個文件就是用來管理所有git用戶的公鑰的,也就是這裡面的用戶對於項目有著R+W的許可權。
客戶端

於每一個客戶端,我們需要生成一對密鑰和公鑰,如果是Github用戶,那麼.ssh目錄下,一定有id_rsa.pub和id_rsa兩個文件,其中第
一個是系統生成的公鑰,另一個是自己要保存好的密鑰。如果沒有的話,可以在終端執行:ssh-keygen來生成,完成後,將自己的公鑰提交給管理員,這
就是一個注冊的行為。
完成
最後一步,管理員將團隊成員的公鑰添加到authorized_keys中,比如將同學susie加入:

$ cat susie.pub >> authorized_keys

至此,大家可以通過git@server:repos/some.git來訪問公共的版本庫了。

熱點內容
少兒編程排行 發布:2025-01-24 04:40:46 瀏覽:698
搭建伺服器怎麼使用 發布:2025-01-24 04:19:34 瀏覽:444
平行進口霸道哪些配置有用 發布:2025-01-24 04:19:32 瀏覽:874
ngram演算法 發布:2025-01-24 04:03:16 瀏覽:659
迷宮游戲c語言 發布:2025-01-24 03:59:09 瀏覽:358
榮耀30pro存儲類型 發布:2025-01-24 03:54:02 瀏覽:557
客戶端文件上傳 發布:2025-01-24 03:48:44 瀏覽:257
推特更改密碼的用戶名是什麼 發布:2025-01-24 03:45:55 瀏覽:596
cc編譯選項 發布:2025-01-24 03:45:18 瀏覽:512
銀行密碼怎麼被鎖 發布:2025-01-24 03:37:02 瀏覽:431