新聞中心
1. 環(huán)境:
- git服務(wù)器:CentOS-7.6-x86,ip: 192.168.41.41
- 本地客戶端:window10
2. 軟件安裝
yum install git -y3. 創(chuàng)建一個(gè)操作系統(tǒng)用戶 git,設(shè)置密碼,并為其建立一個(gè) .ssh 目錄。
adduser git
passwd git
chmod 755 /home/git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys說明:上述使用chmod命令設(shè)置權(quán)限的步驟一定不能漏,否則可能使用不了ssh連接到git用戶,或者git操作不了遠(yuǎn)程倉(cāng)庫(kù)。

4. 創(chuàng)建Git倉(cāng)庫(kù)目錄
su git
mkdir -p /home/git/project.gi
cd /home/git/project.git/
git init --bare說明:至此,一個(gè)git空倉(cāng)庫(kù)已經(jīng)創(chuàng)建好了。 –bare參數(shù)說明:初始化一個(gè)“裸倉(cāng)庫(kù)”,里面沒有工作區(qū)的概念,不能使用git命令操作(pull,push等);反之,不加bare參數(shù)創(chuàng)建的倉(cāng)庫(kù)(repo)就可以直接在上面進(jìn)行g(shù)it操作。
5. 配置免密拉取遠(yuǎn)程git倉(cāng)庫(kù)代碼。
進(jìn)行完第四步后,在window上打開git base,使用命令:git clone [email protected]:/home/git/project.git即可拉取代碼,但是每一次的代碼拉取到本地都需要輸入密碼,則我們進(jìn)行一個(gè)免密拉取操作。
5.1 在window主機(jī)上,進(jìn)入目錄:C:\Users\你的用戶名\.ssh,查看有沒有id_rsa.pub公鑰文件,
如果沒有,則打開git base輸入命令ssh-keygen生成,提示輸入的按回車即可。
5.2 將本地的公鑰文件內(nèi)容寫入到遠(yuǎn)程git服務(wù)器上。
輸入如下命令,期間會(huì)輸入一次git賬戶的密碼,執(zhí)行成功后,后續(xù)git的操作就不需要輸入密碼了。
ssh-copy-id -i id_rsa.pub [email protected]至此 免密配置完成??梢哉@〈a,上傳代碼了。
6 限制開發(fā)者遠(yuǎn)程登錄git服務(wù)器
通過以上步驟,可以快速搭建一個(gè)具有讀寫權(quán)限、面向多個(gè)開發(fā)者的 Git 服務(wù)器。但所有的開發(fā)者都可以通過git這個(gè)賬戶登錄你的git服務(wù)器得到一個(gè)普通的shell。如下命令:
$ ssh [email protected]
Last login: Sat May 29 20:51:05 2021
[git@python ~]$這可能會(huì)超出我們的預(yù)期,則需要對(duì)開發(fā)者的git賬戶登錄進(jìn)行限制。
借助一個(gè)名為 git-shell 的受限 shell 工具,你可以方便地將用戶 git 的活動(dòng)限制在與 Git 相關(guān)的范圍內(nèi)。 該工具隨 Git 軟件包一同提供。如果將 git-shell 設(shè)置為用戶 git 的登錄 shell(login shell), 那么該用戶便不能獲得此服務(wù)器的普通 shell 訪問權(quán)限。 若要使用 git-shell,需要用它替換掉 bash 或 csh,使其成為該用戶的登錄 shell。 為進(jìn)行上述操作,首先你必須確保 git-shell 的完整路徑名已存在于 /etc/shells 文件中。使用root賬戶登錄服務(wù)器,進(jìn)行如下操作:
[root@python ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@python ~]# which git-shell
/bin/git-shell
[root@python ~]# echo /bin/git-shell >> /etc/shells
[root@python ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
/bin/git-shell
[root@python ~]# chsh git -s $(which git-shell)
Changing shell for git.
Shell changed.
[root@python ~]#這樣,用戶 git 就只能利用 SSH 連接對(duì) Git 倉(cāng)庫(kù)進(jìn)行推送和拉取操作,而不能登錄機(jī)器并取得普通 shell。 如果試圖登錄,你會(huì)發(fā)現(xiàn)嘗試被拒絕,像這樣:
hhs@DESKTOP-8TR991O MINGW64 ~/.ssh
$ ssh [email protected]
Last login: Sat May 29 22:15:00 2021 from 192.168.41.100
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.41.41 closed.
hhs@DESKTOP-8TR991O MINGW64 ~/.ssh
$新聞名稱:自己搭建服務(wù)器github搭建服務(wù)器
本文鏈接:http://m.fisionsoft.com.cn/article/cddgoej.html


咨詢
建站咨詢
