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