Windows下搭建git服务器,简洁版,服务器端msysgit加copssh,客户端msysgit(原创)

来源:互联网 发布:女友 单机游戏 知乎 编辑:程序博客网 时间:2024/05/15 13:48

在看了网上各种攻略之后,自己在windows环境下还是遇到了各种各样的问题,什么permission deny啊等等,去网上找解决方案呢,尼玛找不到一个适用的,在折腾了一天后,终于搞定,在这里上传一篇解决方案,为遇到同样问题的人提供一个参考,愿你看到后能少走一些弯路。(吐槽:果真搭建Git服务器能用Linux环境就用Linux环境啊,方便快速好多好多啊,当然,有的人总有不得不用windows的时刻)
文章中如有任何说的不恰当的地方,欢迎大家告诉我,让我可以改正


正文:

服务器端环境:windows7 32位,msysgit,copssh
客户端准备:msysgit

为了节省大家的时间,这里给出所需的软件的官网链接
msysgit:
https://github.com/git-for-windows/git/releases/tag/v2.5.2.windows.2
(git的windows版本,大家根据需要选择64位或32位,我在服务器端使用的是Git-2.5.2.2-32-bit.exe )
copssh:
https://www.itefix.net/copssh
(大家可以发现官网新版的free版的有许多限制,比如只支持一个用户,不可创建多个用户,不支持64位等等,但是网上许多使用copssh搭建git服务器的教程给出的都是老版本的copssh的一些配置方法,貌似老版本免费支持多个用户,虽然大都一样,但是还会有一些地方要注意)
这里写图片描述

大家在看过许多配置方法过后,一般还会看到一个软件TortoiseGit,这个软件无论用或不用其实环境都能搭建成功,这个东西的作用其实就是使windows用户在使用git的时候更加方便友好一些,比如说在git add或者git clone的时候不用输命令,直接右击会有可视化界面,用起来会稍微方便一点。其实呢,我认为git的各个命令本来也没有多复杂,再加上这是一个简洁版的解决方案,再加上输命令其实挺有感觉的,再加上初次搭建,越简单越好,于是我舍弃了这个软件。其实大家有需要的话,搭建完再加上去也是可以的。


以下给出了我搭建环境时参考的一些链接(千篇一律,大家基本都一样的地方就不详细讲了,重点讲不一样的要注意的地方),大家也可以参考看看,毕竟大家都会遇到不一样的问题。

  • http://blog.csdn.net/aaron_luchen/article/details/10498181
  • http://blog.csdn.net/code_style/article/details/38764203
  • http://jingyan.baidu.com/article/3a2f7c2e16ca2a26afd611e2.html

首先,安装msysgit,基本都是默认安装,需要改路径的话自己改一下
其次,安装copssh,基本都是默认安装,安装路径中最好不要有空格

在安装好上面两个软件后就是服务器的配置过程了,安装copssh是为了客户端用户能通过ssh连接到服务器,然后获取到服务器上的git仓库。这里一个要点就是设置ssh免密码登录,就是使用公钥私钥的方式登录。

1.打开copssh

这里写图片描述

2.我们要添加一个用户,点击Users,然后点击Add

这里写图片描述
点击Add后的添加界面,直接forward就可以了
这里写图片描述
不一样的地方来了,还记得前面说的新版本的free版本只能有一个用户,无法添加多个用户的问题吗,在下面图中你会发现无法自己新建用户名,只能选择系统原有的用户里面选择一个,这里随便,我选的是我本机的windows用户名,然后下一步
这里写图片描述

最最最重要的一点来了

,也是害的我弄了好久才找到问题的一个地方。下图中是默认的路径和选项,使用它的默认路径是绝对不可以的,路径随便放一个地方也是绝对不可以的,否则到时候会报Permission Denyed(publickey,keyboard-interactive)的错误(即使你的公钥什么的都配置好了,也没有放错地方)。路径应该要放在你安装copssh的安装路径的home文件加下面,比如我的copssh安装目录是D:\ICW,那么Home directory我就该填D:\ICW\home\wmm(重点是无论你怎么填,一定要在D:\ICW\home目录下随便填,血和泪的教训啊)**这里写图片描述
应该长这样,不要勾选Allow password authentication,因为我们不使用密码登录,而使用公钥。
这里写图片描述
然后一路到底添加完用户后,我们就可以看到刚刚添加好的用户了,这是我们免费用户的唯一一个用户,再添加就添加不进了,要换的话只能删除重新添加一个了。
这里写图片描述

3.接下来就是设置公私钥

现在在上图中点击keys里面是没有东西的
这里写图片描述
首先我们要先生成密钥对
打开git bash
这里写图片描述
输入ssh-keygen -t rsa命令生成密钥对,需要输东西的地方直接回车就好了,一路回车直到完成。
这里写图片描述
然后找到我们刚刚生成的密钥对,在上图中有提示这里写图片描述,进入C:\Users\wmm.ssh目录下,可以找到两个文件
这里写图片描述
id_rsa.pub就是公钥,记事本打开这个文件,全选复制里面的所有东西,然后进入我们前面copssh添加的用户目录下的.ssh文件夹,我这里是D:\ICW\home\wmm.ssh,然后新建一个文件authorized_keys(注意,没有后缀名),把刚刚复制的公钥的内容全部粘贴进去,以后要添加新的可访问服务器客户端,直接把客户端的公钥另起一行添加进这个文件就可以了。
这时你在重新打开keys就可以看到里面不是空的了。

4.测试ssh登录能否成功

在git bash里面输入ssh 用户名@ip地址 回车登录
首次登录会有一个询问,按提示输入yes就可以了
这里写图片描述

如果登录成功没有错误信息,说明到目前为止全部配置正确,如果登录失败请检查下面几点:
ssh 的端口是否打开,如果没有,请在控制面板里面新建入站规则打开端口,具体操作百度一下。
authorized_keys文件的权限问题,右击该文件,属性,安全里面选择用户修改这个文件的权限。
还有就是上面提到的重点,新建用户的路径放在了copssh安装目录的home文件夹下了吗。
找到copssh安装的目录下面的etc目录D:\ICW\etc,用记事本打开ssh_config和sshd_config这两个文件,查看这两个文件是否配置正确。
(找到PasswordAuthentication,如果前面有#号,删掉,如果后面是yes,改成no PasswordAuthentication no找到PubkeyAuthentication,如果前面有#号,删掉,如果后面是no,改成yes PubkeyAuthentication yes找到Port 22,删除掉前面的#号Port 22

5.登录成功后,让我们进入最后一步,就是让我们登录之后可以使用git命令。

把git安装目录下的bin里面(F:\Git\mingw32\bin)的文件全部复制一份到copssh的bin文件夹里面

6.测试

在git bash里面先ssh登录,登录成功后,使用git命令,能使用则配置成功了(比如 新建一个文件夹mkdir test 然后进入文件夹使用git init命令不报错就可以表示配置成功了,撒花,祝贺 )

7.客户端配置:

客户端只需要安装msysgit就可以了,然后用上面的办法生成密钥对,把公钥给管理员,放进服务器的authorized_keys文件就好了,然后就可以使用了。
还有一个要点是,本地仓库要从远程仓库克隆的命令是git clone 用户名@IP地址:仓库名(比如 git clone wmm@192.168.1.11:testgit)
注意:服务器端的git仓库也同样要放在ICW/home/你的用户名 的目录下,也就是你用copssh添加的用户目录下才可以,注意仓库路径,在用户根目录下的话直接填仓库名就可以了,如果不是要用~/用户目录下的路径/仓库名。

结束啦~~~

0 0
原创粉丝点击