搭建Git伺服器遇到的那些坑
1、首先需要安裝Git,可以使用yum源線上安裝:
yum install -y git
2、接下來我們 建立一個git使用者組和使用者並新增密碼,用來執行git服務:
groupadd git
adduser git -g git
passwd git
2、建立證書登入
收集所有需要登入的使用者的公鑰,公鑰位於id_rsa.pub檔案中,把我們的公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。
如果沒有該檔案建立它:
cd /home/git/
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
注: .ssh 和.ssh/authorized_keys的許可權必須按照上面的設定,否則會認證失敗
3、初始化Git倉庫
首先我們選定一個目錄作為Git倉庫,假定是/home/git/front.git,在/home/git目錄下輸入命令:
cd /home/git
git init –bare front.git
以上命令Git建立一個空倉庫,伺服器上的Git倉庫通常都以.git結尾。然後,把倉庫所屬使用者改為git:
chown -R git:git front.git
4、在這裡,Git伺服器就已經搭得差不多了。下面我們在客戶端clone一下遠端倉庫
git clone [email protected]
鍵入密碼進行clone,但是更為常見的方式,是利用SSH的公鑰來完成驗證。
5、建立SSH Key
首先在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:
在Git Bash 執行命令
ssh-keygen -t rsa -C “[email protected]”
你需要把郵件地址換成你自己的郵件地址,然後一路回車,使用預設值即可,由於這個Key也不是用於軍事目的,所以也無需設定密碼。
如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
將剛生成的id_rsa.pub公鑰匯入或者內容複製到 /home/git/.ssh/authorized_keys檔案裡面。
6、Git伺服器開啟RSA認證
然後就可以去Git伺服器上新增你的公鑰用來驗證你的資訊了。在Git伺服器上首先需要將/etc/ssh/sshd_config中將RSA認證開啟,即:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
vim /etc/ssh/sshd_config
將上面三個引數修改 然後重啟ssh服務
systemctl restart sshd
然後再次clone的時候,或者是之後push的時候,就不需要再輸入密碼了:
注:以上金鑰只適用於使用Git Bash進行命令管理git的,即clone,push等相關操作在Git Bash才不用輸入密碼,而如果你使用TortoiseGit 視覺化介面,仍然要你輸入密碼(我就一直卡在這裡,弄了很久才知道這個原因)
TortoiseGit 無需輸入密碼方法如下
開啟puttygen
點選save private key儲存putty的私鑰,putty的金鑰的字尾名是ppk。
把公鑰新增到.ssh/authorized_keys
注意:
公鑰在authorized_keys的檔案形式是一行一個公鑰,切記。否則該公鑰不起作用。
在tortoisegit上使用金鑰
然後就OK了 完全不需要密碼就可以使用git任何操作
這個過程有幾個坑:
一、是authorized_keys檔案中的內容,windows下存的檔案中拷過去會有問題(折行或者是前後的字串),總之要從介面考過去,否則ssh不認;
二、是.ssh目錄和authorized_keys檔案的許可權必須為0600,不能讓除本使用者之外其他任何使用者有寫許可權,否則sshd也不認 。
7、禁用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伺服器遇到的那些坑
1、首先需要安裝Git,可以使用yum源線上安裝: yum install -y git 2、接下來我們 建立一個git使用者組和使用者並新增密碼,用來執行git服務: groupadd git adduser git -g git passwd g
linux 使用gitblit搭建git伺服器
linux使用gitblit搭建git伺服器 安裝的過程不是很複雜,首先在官網下載gitblit的安裝包,下載版本為gitblit-1.8.0。 解壓檔案到當前路徑 tar -zxvf gitblit-1.8.0.tar.gz 配置在data下的defaults
Windows Server 2012 搭建FTP伺服器的一些坑(二)
Windows Server 2012 搭建 IIS 的 FTP 伺服器被動模式連結失敗,出現 200 Type set to A. 227 Entering Passive Mode; 雲伺服器安全組已新增對應規則,伺服器防火牆已配置入站規則 20-21埠
Windows Server 2012 搭建FTP伺服器的一些坑(一)
初衷就是想在雲伺服器上寫程式,為了使本機和雲伺服器之間傳檔案更方便,於是乎搭建FTP伺服器。總結折磨我兩天的一些坑,唉,欲哭無淚啊== 首先從一個已經搭建好的FTP伺服器上下載搭FTP伺服器必須的應用程式:FileZilla,WinRA
自定義Git ~ 忽略特殊檔案.gitignore、配置別名、搭建Git伺服器(十八)
在 安裝 Git 一節中,我們已經配置了使用者名稱 user.name 和 Email 地址 user.email,實際上,Git還有很多可配置項。比如,讓 Git 顯示顏色,會讓 輸出的命令 看起來更醒目,如下: 這樣,Git 會適當地顯示不同的顏色,比如 git status
Linux下搭建Git伺服器 Jenkins持續整合環境部署
1、安裝Git 見 Jenkins持續整合環境部署 第四節 2、建立Git使用者和使用者組 1 groupadd git 2 useradd git -g git 3、建立證書切換到git使用者建立證書 1 su git 2 cd /home/git 3 mkdir .ssh 4 c
使用gitblit搭建git伺服器
前言 一直在學習新技術,我想都整理到部落格上。公司還在堅持用svn,之前學過git都快要忘記了,此篇部落格記錄搭建基於gitblit的git伺服器。當然直接使用linux也可以,不過我不是很熟悉,考慮到我的主語言是Java,也就用gitblit搭建了一個。 環境 Windows server 2016
在 Linux 下搭建 Git 伺服器後如何新建專案和新增使用者
關於如何在Linux 下搭建 Git 伺服器的問題,大家可以參考這篇文章(https://www.cnblogs.com/dee0912/p/5815267.html)。 我按照上面文章內容操作,確實搭建完成Git伺服器後,但是又出現了一個問題,如何新建專案,並且把參與開發人員加到該專案呢?下面
關於阿里雲專有網路搭建FTP伺服器的深坑
之前用的FTP伺服器都是,隨便搭建一下就能用了, 昨天因為伺服器的問題,換了個伺服器,搭建FTP伺服器的時候發現, 搭建的伺服器居然只能使用 主動模式訪問,改成被動後 無法獲取目錄, 百度了 各大論壇,提交了 無數工單,都沒有解決!最後發現,居然是如此簡單,只因網路不一樣。 阿里
centos7搭建git伺服器(多使用者版)
建立倉庫並分享到組: git init --shared=group test 建立組: groupadd git 切換專案所屬組: chgrp -R git test 建立使用者1: useradd test1 -g git passwd test1 建立使用者2
cenos7 上搭建git伺服器
安裝git 在官網下載 tar.gz的包 然後放到 Linux(centos7系統)伺服器中 執行 tar -zxvf 檔名 來進行解壓檔案 然後 執行 git -version 來檢視git版本 正常出現版本號 繼續進行下一步 執行 useradd git 命令來建立 git使用者 然後 執行
centos7上搭建git伺服器
目錄 環境: 安裝git和建立使用者 建立證書登入 初始化git倉庫 踩得坑 tortisegit使用 環境: centos7,git 1.8.3,tortisegit 安裝git和建立使用者 注:$代表用root使用者登入 # 安裝Git $ y
搭建Git伺服器
Windows平臺下搭建Git伺服器 1、在自己電腦搭建Git伺服器,且只有自己的電腦能訪問。 即使是自己一個人在開發程式碼也強烈建議使用Git來管理程式碼。當然也可以只使用本地Git倉庫的形式來管理程式碼。 安裝Git:從這個網址下載,https://git-scm.com/downloads,
搭建git伺服器倉庫
1、安裝git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git 2、建立git使用者組和使用者,專門用來執行g
搭建Git CentOS搭建Git伺服器及許可權管理
CentOS搭建Git伺服器及許可權管理 宣告:本教程,僅作為配置的記錄,細節不展開,需要您有一點linux的命令基礎,僅作為配置參考。 1. 系統環境 系統: Linux:CentOS 7.2 64位 由於CentOS已經內建了OpenSSH,如果您的
Java實現FTP上傳檔案到Linux伺服器的那些坑
一、Linux安裝FTP服務 首先Linux伺服器需要安裝FTP服務,步驟如下: 1、執行如下ftp服務安裝命令: yum install vsftpd 可能會出現如下錯誤: "Couldn't open file /m
Git學習筆記<13> 搭建Git伺服器
搭建Git伺服器 準備一臺執行Linux的機器,強烈推薦用Ubuntu或Debian 擁有sudo許可權 第一步,安裝git: sudo apt-get install git 第二步,建立一個git使用者,用來執行git服務: sudo adduser git 第三步,建立
搭建git伺服器遠端倉庫_linux
搭建git伺服器遠端倉庫 安裝git軟體 yum install git 配置git的使用者資訊 git config --global user.name "XXX
在Linux上搭建git伺服器
這裡我使用的是centos伺服器 1、安裝git yum -y install git 2、新新增使用者git adduser git 3、進入/etc/passwd將 git:x:1001:10
Git學習筆記11——配置Git、搭建Git伺服器
忽略特殊檔案 有些時候,你必須把某些檔案放到Git工作目錄中,但又不能提交它們,比如儲存了資料庫密碼的配置檔案啦,等等,每次git status都會顯示Untracked files ...,有強迫症的童鞋心裡肯定不爽。 好在Git考慮到了大家的感受,這個問題解