Windows系統局域網中兩台機器搭建自己的個人Git倉庫


使用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倉庫隱藏的文件放在當前目錄下,此目錄僅用於存儲倉庫的歷史版本等數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM