最近幫朋友弄git私服,記錄一下方便以后操作。
目標(biāo):在linux上搭建一個(gè)git服務(wù)器黎棠,供遠(yuǎn)程操作項(xiàng)目管理晋渺。本篇不做權(quán)限管理,通過(guò)手動(dòng)在服務(wù)器維護(hù)authorized_keys方式授權(quán)脓斩。如果想?yún)⒖糶itlab 可視化管理方式木西,請(qǐng)看:Linux搭建gitLab
搭建環(huán)境
- 服務(wù)器 CentOS7.5 + git(version 1.8.3)
- 客戶端 Windows10 + git(version 2.17.1.windows.2)
一、服務(wù)端搭建
- 安裝git
yum install git -y //拉取最新git即可
- 查看git版本
git --version //正常顯示版本表示安裝成功
- 添加git用戶
useradd git //這里不一定非要是 ‘git’這個(gè)名字随静,為了方便使用git
- 修改git登錄密碼
passwd git //修改上一步添加git的用戶密碼0饲А!燎猛!注意密碼強(qiáng)度要規(guī)范A道Α!重绷!
這里注意密碼強(qiáng)度一定要合法沸停,8-16位數(shù)字、字母昭卓、字符且不能含有用戶名愤钾,下面就是錯(cuò)誤提示
- 創(chuàng)建一個(gè)git空項(xiàng)目
cd /app/
mkdir test
cd test/
git init --bare test.git //bare方式創(chuàng)建一個(gè)空項(xiàng)目
至此服務(wù)端的git已經(jīng)安裝部署好,并且已經(jīng)生成了一個(gè)空目錄的git項(xiàng)目葬凳,git地址為:git@ip:port/dir/example.git 例如git@127.0.0.1:/app/test/test.git
如果ssh默認(rèn)端口22可以省略不寫(xiě)绰垂,否則port為對(duì)應(yīng)ssh端口
二、客戶端安裝
- git官網(wǎng)下載版本安裝 https://git-scm.com/downloads
- windows電腦打開(kāi)一個(gè)文件夾火焰,右鍵選擇 Git Bash here劲装,在git窗口檢驗(yàn)是否安裝成功。
git --version
- 下載服務(wù)端的git項(xiàng)目
git clone 服務(wù)ip:/app/test/test.git //初次鏈接服務(wù)器昌简,會(huì)提示是否授信占业,輸入yes即可
4.clone項(xiàng)目時(shí)會(huì)提示輸入密碼,直接輸入在服務(wù)端創(chuàng)建git賬號(hào)時(shí)填寫(xiě)的密碼即可纯赎。即前面提到的git用戶的密碼谦疾。
至此客戶端應(yīng)能夠下載git代碼了,但僅限于用git賬號(hào)密碼ssh鏈接下載犬金,顯然不是我們想要的念恍!如何使用自己的git賬號(hào)連接遠(yuǎn)程git服務(wù)器進(jìn)行代碼的操作呢?
三晚顷、使用SSH公鑰操作git服務(wù)器
- 客戶端生成ssh公鑰
ssh-keygen -t rsa -C "gitEmail@163.com" //一路回車(chē)即可
-
找到ssh公鑰和私鑰峰伙,windows客戶端C:\Users\你的用戶.ssh
image.png
id_rsa為私鑰,id_rsa.pub公鑰该默,公鑰可以配置在git服務(wù)器上
- git服務(wù)器打開(kāi)RSA認(rèn)證
進(jìn)入 /etc/ssh 目錄瞳氓,編輯 sshd_config,打開(kāi)以下三個(gè)配置的注釋?zhuān)?/li>
RSAAuthentication yes //RSA權(quán)限認(rèn)證
PubkeyAuthentication yes //公鑰認(rèn)證(若沒(méi)有手動(dòng)添加)
AuthorizedKeysFile .ssh/authorized_keys //公鑰存放地址栓袖,這里的.ssh指的是git用戶的.ssh目錄匣摘,非root用戶的目錄店诗,即/home/git用戶/.ssh
重啟sshd服務(wù)
systemctl restart sshd.service
- 添加客戶端id_rsa.pub到git服務(wù)器authorized_keys
cd /home/git
mkdir .ssh //如果不存先創(chuàng)建
cd .ssh/
chown -R git:git .ssh //授權(quán)
chmod 700 -R git:git /home/git //文件夾權(quán)限
touch authorized_keys
rz id_rsa.pub
cat id_rsa.pub >> authorized_keys
- 關(guān)閉git用戶shell登錄
git服務(wù)端:編輯/etc/passwd文件,將
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
至此音榜,已經(jīng)完成了git服務(wù)器的搭建庞瘸,已經(jīng)添加ssh公鑰的用戶,可以在客戶端進(jìn)行g(shù)it操作了囊咏!