1. 程式人生 > >ubuntu 16.04 搭建 git

ubuntu 16.04 搭建 git

參考文章

http://www.runoob.com/git/git-server.html
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000


環境

伺服器環境:
ubuntu 16.04
本地環境:
windows7
git 2.18.0


本地端

下載git

https://git-scm.com/downloads
這個安裝就沒什麼好說的了,一路點選下一步就好

這裡寫圖片描述

建立金鑰對
ssh-keygen

方便起見,配置時一直回車,按預設選項配置。

這裡寫圖片描述

上傳公鑰到伺服器
ssh-copy-id 使用者名稱@ip地址

這裡寫圖片描述


伺服器端

先查詢一下剛才傳送過來的客戶端公鑰

updatedb
locate authorized_keys

這裡寫圖片描述

傳到 /home/ubuntu/.ssh/authorized_keys 了

這裡寫圖片描述

安裝git
apt install git 

這裡寫圖片描述

建立一個git使用者組和使用者
groupadd git
useradd git -g git
建立證書登入

建立git目錄

mkdir /home/git

建立.ssh目錄

mkdir /home/git/.ssh

建立authorized_keys檔案

touch /home/git/.ssh/authorized_keys

將剛才本地上傳的公鑰匯入authorized_keys檔案

cat /home/ubuntu/.ssh/authorized_keys >> /home/git/.ssh/authorized_keys

這裡寫圖片描述

檢視一下匯入的公鑰

這裡寫圖片描述

沒問題

禁用shell登入

出於安全考慮,建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。

vim /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倉庫

新建一個目錄作為Git倉庫

mkdir /home/mygit

修改許可權

chown git:git mygit

進入目錄

cd /home/mygit

初始化一個空的git倉庫

git init --bare first.git

所屬使用者改為git

chown -R git:git first.git

克隆倉庫

git clone git@192.168.0.113:/home/mygit/first.git

這裡寫圖片描述

完成

這裡寫圖片描述