日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

转:Linux搭建git私服

發(fā)布時(shí)間:2025/3/15 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:Linux搭建git私服 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引子:https://www.cnblogs.com/jimmy-muyuan/p/8762934.html

1、安裝Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git

接下來我們 創(chuàng)建一個(gè)git用戶組和用戶,用來運(yùn)行g(shù)it服務(wù): $ groupadd git $ useradd git -g git

2、創(chuàng)建證書登錄

收集所有需要登錄的用戶的公鑰,公鑰位于id_rsa.pub文件中,把我們的公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個(gè)。

如果沒有該文件創(chuàng)建它:

$ cd /home/git/ $ mkdir .ssh $ chmod 755 .ssh $ touch .ssh/authorized_keys $ chmod 644 .ssh/authorized_keys

3、初始化Git倉庫

首先我們選定一個(gè)目錄作為Git倉庫,假定是/home/gitrepo/learngit.git,在/home/gitrepo目錄下輸入命令:

$ cd /home $ mkdir gitrepo $ chown git:git gitrepo/ $ cd gitrepo $ git init --bare learngit.git Initialized empty Git repository in /home/gitrepo/learngit.git/

以上命令Git創(chuàng)建一個(gè)空倉庫,服務(wù)器上的Git倉庫通常都以.git結(jié)尾。然后,把倉庫所屬用戶改為git:
$ chown -R git:git learngit.git

4、克隆倉庫

$ git clone git@192.168.1.101:/home/gitrepo/learngit.git Cloning into 'learngit'... warning: You appear to have cloned an empty repository. Checking connectivity... done.

可能會(huì)提示錯(cuò)誤 如下信息:
$ git clone git@192.168.8.34:/data/git/learngit.git Cloning into 'learngit'... The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established. RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts. git@192.168.8.34's password:

這里兩點(diǎn)需要注意:第一,當(dāng)你第一次使用Git的clone或者push命令連接GitHub時(shí),會(huì)得到一個(gè)警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is xx.xx.xx.xx.xx. Are you sure you want to continue connecting (yes/no)?

這是因?yàn)镚it使用SSH連接,而SSH連接在第一次驗(yàn)證GitHub服務(wù)器的Key時(shí),需要你確認(rèn)GitHub的Key的指紋信息是否真的來自GitHub的服務(wù)器,輸入yes回車即可。

Git會(huì)輸出一個(gè)警告,告訴你已經(jīng)把GitHub的Key添加到本機(jī)的一個(gè)信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

這個(gè)警告只會(huì)出現(xiàn)一次,后面的操作就不會(huì)有任何警告了。
如果你實(shí)在擔(dān)心有人冒充GitHub服務(wù)器,輸入yes前可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。
第二,這里提示你輸入密碼才能clone,當(dāng)然如果你知道密碼,可以鍵入密碼來進(jìn)行clone,但是更為常見的方式,是利用SSH的公鑰來完成驗(yàn)證。

5、創(chuàng)建SSH Key
首先在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個(gè)目錄下有沒有id_rsa和id_rsa.pub這兩個(gè)文件,如果已經(jīng)有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創(chuàng)建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認(rèn)值即可,由于這個(gè)Key也不是用于軍事目的,所以也無需設(shè)置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個(gè)文件,這兩個(gè)就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

6、Git服務(wù)器打開RSA認(rèn)證
然后就可以去Git服務(wù)器上添加你的公鑰用來驗(yàn)證你的信息了。在Git服務(wù)器上首先需要將/etc/ssh/sshd_config中將RSA認(rèn)證打開,即:

1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys

這里我們可以看到公鑰存放在.ssh/authorized_keys文件中。所以我們在/home/git下創(chuàng)建.ssh目錄,然后創(chuàng)建authorized_keys文件,并將剛生成的公鑰導(dǎo)入進(jìn)去。

然后再次clone的時(shí)候,或者是之后push的時(shí)候,就不需要再輸入密碼了:

Zhu@XXX/E/testgit/8.34 $ git clone git@192.168.8.34:/data/git/learngit.git Cloning into 'learngit'... warning: You appear to have cloned an empty repository. Checking connectivity... done.

7、禁用git用戶的shell登陸
出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

最后一個(gè)冒號后改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出。

?

?

常用命令:

git init // 初始化版本庫

git add . // 添加文件到版本庫(只是添加到緩存區(qū)),.代表添加文件夾下所有文件

git commit -m "first commit" // 把添加的文件提交到版本庫,并填寫提交備注

到目前為止,我們完成了代碼庫的初始化,但代碼是在本地,還沒有提交到遠(yuǎn)程服務(wù)器,所以關(guān)鍵的來了,要提交到就遠(yuǎn)程代碼服務(wù)器,進(jìn)行以下兩步:

git remote add origin ?git@192.168.1.101:/home/gitrepo/runoob.git (你的遠(yuǎn)程庫地址)// 把本地庫與遠(yuǎn)程庫關(guān)聯(lián)

git push -u origin master // 第一次推送時(shí)

git push origin master // 第一次推送后,直接使用該命令即可推送修改

把本地庫的內(nèi)容推送到遠(yuǎn)程。使用 git push命令,實(shí)際上是把當(dāng)前分支master推送到遠(yuǎn)程。執(zhí)行此命令后會(huì)要求輸入用戶名、密碼,驗(yàn)證通過后即開始上傳。?
說明:用戶名密碼需要通過命令 ssh-keygen -t rsa -C “xxxxxx@qq.com”進(jìn)行創(chuàng)建,并且要把得到的秘鑰(公鑰)文件放到git服務(wù)器上,這樣才有權(quán)限進(jìn)行代碼推送

?

轉(zhuǎn)載于:https://www.cnblogs.com/x-jingxin/p/11195684.html

總結(jié)

以上是生活随笔為你收集整理的转:Linux搭建git私服的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。