使用Git搭建自己的私有/個人Git倉庫
- 准備工作
- 安裝Git 配置Git的SSH訪問
- 配置SSH訪問
- 客戶端生成ssh私鑰上傳服務器
- 服務端將客戶端上傳私鑰加入密鑰驗證文件
- 客戶端驗證連接
- 服務端創建Git倉庫
- 補充說明
准備一下
系統:Windows7/8/10
驗證:Dos命令行輸入ssh,返回如下圖即存在ssh,如不存在請通過【控制面板 - 程序 - 添加windows功能 - 勾選OpenSSH】后重啟電腦再進行嘗試

安裝Git
服務端和客戶端均需安裝Git
官方鏈接: https://git-scm.com/download/win
配置Git的SSH訪問
上述准備工作弄好后就可以開始了,這里僅介紹SSH的方式(這里會簡單介紹基本配置和一些坑點)
配置SSH訪問
先打開服務端的git bash,路徑切換到你安裝的git的sshd配置文件的路徑,假設我的Git安裝在E盤,則路徑為:E:\Git\etc\ssh。該路徑可看到ssh_config和sshd_config兩個配置文件
# 路徑切換到ssh文件夾 cd E:\Git\etc\ssh # 創建.ssh文件夾 mkdir .ssh # 進入.ssh文件夾並創建authorized_keys文件,用來存放用戶訪問的ssh公鑰 cd .ssh touch authorized_keys
此時服務端的准備工作已完成,接下來就是客戶端的操作。
客戶端生成ssh私鑰上傳服務器
以下流程是0-1的過程,如已創建過密鑰且該密鑰仍用於其它服務,請謹慎操作。重新生成的密鑰將覆蓋原密鑰導致舊服務失效
首先,依舊是先打開客戶端中的git bash,然后輸入以下指令
ssh-keygen -t rsa
然后三個回車即可,如果填寫了內容自己記住即可
創建成功后,查看用戶的.ssh目錄下是否有了私鑰文件。這里存在一個坑點,很多人會發現,提示successful但是卻找不到生成的密鑰
windows系統中執行指令后需前往
路徑: C:\Users\用戶名\.ssh
這里將會生成兩個文件,id_rsa,id_rsa.pub
id_rsa.pub就是我們需要的私鑰
剩下就是就是上傳到服務端,這里可以通過ftp、scp等,由於我服務端也是windows系統,直接通過遠程桌面打開后將私鑰復制上去即可
服務端將客戶端上傳私鑰加入密鑰驗證文件
將客戶端生成的私鑰復制放置到剛剛服務端生成的authorized_keys文件同一個文件夾。
然后打開服務端的Git bash
# 路徑切換到剛剛服務端生成的.ssh文件夾
cd E:\Git\etc\ssh\.ssh # 此時可以看到 authorized_keys文件 和 id_rsa.pub 私鑰 # 執行下面的追加指令
cat id_rsa.pub >> authorized_keys # 追加完成后服務端的git需要打開RSA認證 # 返回上一級路徑可看到一個sshd_config的文件,右鍵編輯 # 下面3個打開注釋,若不存在則手動添加 # 注意:.ssh/authorized_keys這個路徑根據你實際生成位置決定,如果你完全按照教程來,則無需改動 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
客戶端驗證連接
# 客戶端git bash輸入SSH訪問指令 # eg: ssh impReeves@10.232.53.66 ssh 賬號名@服務器IP
第一次連接有Warning警告,輸入yes繼續即可,如果可以正常連上,那么恭喜你SSH配置已經完成了。
注意:如果仍然提示需要密碼,請重新檢查步驟3是否有誤,一般問題都是sshd_config中 .ssh/authorized_keys 這個的路徑問題,所以為了避免不必要的麻煩,萌新盡量按教程生成authorized_keys
服務端創建Git倉庫
進行這一步之前請確認自己的SSH連接是正常的哈,不然以下步驟也只能干瞪眼...
如果以上步驟均已成功,恭喜你,來到最后一個環節,初始化自己心愛的私人倉庫了
倉庫位置可以根據個人喜好放置,但建議路徑不要包含中文名字
# 在E盤新建一個專門放置git的文件夾git_workspace cd e: mkdir git_workspace cd git_workspace # 然后創建項目的git倉庫,假設我要做寫一個工具項目,則 mkdir tools.git cd tools.git # 進入生成的tools.git文件夾后,初始化git倉庫 git init --bare # 輸出以下內容則表示初始化成功!
# Initialized empty Git repository in e:/git_workspace/tools.git/
至此,git服務器搭建完了
剩下的就是通過客戶端進行clone或者remote add等操作了
# git克隆使用地址 git clone 用戶名@服務器IP:/相對用戶根目錄的git倉庫絕對路徑/git倉庫名.git # 以我為例子 git clone ImpReeves@10.232.53.66:e:/git_workspace/tools.git # 如果ssh驗證成功就直接進行clone了,https的方式會提示輸入用戶名、密碼,如果ssh也提示輸入用戶名密碼,請驗證ssh過程是否正確
補充說明
git init --bare 是git命令,是在當前目錄創建一個裸倉庫,也就是說沒有工作區的文件,直接把git倉庫隱藏的文件放在當前目錄下,此目錄僅用於存儲倉庫的歷史版本等數據。
