windows 下搭建git服务器,及问题处理。

  最近要做一个源码管理服务器,权衡了一下还是git最适合,搭建服务器前看了网上一些windows下搭建git服务器的帖子,感觉还比较简单,没有太多需要配置的地方,于是开始动手。

我选择的是 gitfor windows + Tortoisegit + Copssh

gitfor windows下载地址 http://msysgit.github.io/最新版的 Git-1.9.4-preview20140611

  putty 用来测试ssh连接 同时还需要工具 puttygen 用来转换 copssh生成的私钥,它们两个格式不一样,连接的时候不注意就会在这里出问题,我就栽到这个坑里。

先安装Copssh  再 gitfor windows ,Tortoisegit 安装过程比较简单,不想罗列太多的图片,不清楚怎么安装的去找度娘。

安装好之后,有几点需要注意的:

1. 配置Tortoisegit:TortoiseGit>Settings

windows 下搭建git服务器,及问题处理。

配置好git路径

2. 创建一个git账户管理员权限

3. 在copssh里激活 git 用户

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

用户激活成功,下面生成公钥和私钥

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

windows 下搭建git服务器,及问题处理。

输入密码,此密码为ssh密钥登陆密码。私钥名称,私钥默认放在 copssh 安装目录 \ICW\home\用户名  下面   ,公钥在 \ICW\home\用户名\.ssh 下面 名称为:authorized_keys

  windows 下搭建git服务器,及问题处理。

  ok,公钥跟私钥生成成功,下面打开puttygen 将私钥转换成 putty格式

windows 下搭建git服务器,及问题处理。

点击 Load 选择刚才生成的 private_key.ppk 文件,输入密码

  windows 下搭建git服务器,及问题处理。

  点击 Save private key 保存私钥,注意不要覆盖原来的私钥,copssh 私钥格式跟 putty私钥格式不一样,测试ssh连接时用 puttygen 生成的私钥

客户端git连接ssh服务器的时候要用copssh生成的私钥。 我在刚开始搭建服务器的时候客户端用的putty生成是私钥,putty测试连接没有问题,用

git 连接是老是报没有权限,郁闷了一天后来才发现问题出在这里。

4. 找到copss安装目录C:\Program Files (x86)\ICW\etc

下面的sshd_config,跟ssh_config 文件

PasswordAuthentication 设置为 no

   port 设置为 22

防火墙打开22端口  用 telnet 命令链接查看是否能够连接,没问题接着下面走

根据自己的安装目录, 将C:\Program Files (x86)\Git\libexec\git-core目录下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe复制到C:\Program Files (x86)\ICW\bin目录下

C:\Program Files (x86)\Git\bin 目录下的libiconv-2.dll复制到 C:\Program Files (x86)\ICW\bin目录下

   用putty 测试是否能够连上服务器

   windows 下搭建git服务器,及问题处理。

填上服务器名称端口

windows 下搭建git服务器,及问题处理。

Author选项,导入私钥点击 open ,如果能够连接说明ssh服务器搭建成功。

5. 客户端Git配置

(最好的做法是在客户端用  ssh-keygen -t rsa 生成公钥跟私钥  把公钥加到 服务器 \ICW\home\用户名\.ssh 下面 authorized_keys 里面

私钥放到 客户端 用户名/.ssh 目录下)

将生成的私钥放到客户端 用户名/.ssh 目录下

同目录下添加 config文件,注意没有扩展名

文件输入如下内容
Host server            #执行git命令时服务器别名#
HostName 192.168.1.110   #这里是你服务器的地址#
User  git                            #登陆服务器用户名#
IdentityFile ~/.ssh/private_key.ppk #私钥地址#

6. 服务器端 在\ICW\home\用户名 下用Tortoisegit 创建一个文件夹   test.git

右键 Git Create repository here..  勾选 Make it Bare ( No working directories) 创建空仓库

7. 客户端执行 $git clone git@server:test.git  输入密码

windows 下搭建git服务器,及问题处理。

ok,克隆成功至此git服务器搭建好了!

可能遇到的问题:

A.  私钥不要搞混了用 putty 连接同 git 连接是用两不同的私钥,私钥不对是话会报错:

Permission denied (keyboard-interactive).

fatal:Could not read from remote repository.

windows 下搭建git服务器,及问题处理。

如果出现这种情况不能确认是否是私钥有问题时可以这样处理:

到服务器端激活密码验证,

找到copss安装目录C:\Program Files (x86)\ICW\etc

下面的sshd_config,跟ssh_config 文件

PasswordAuthentication 设置为 yes

这样的话连接服务器需要输入git用户 的用户密码,通过用户名登陆,不走密钥验证,如果能连接成功,说明一定是私钥问题。

B. 缺少文件

我在克隆时碰到过缺少libiconv-2.dll 的情况

git 提示 /user/bin/git-upload-pack.exe: error while loading shared libraies: libiconv-w.dd: cannot open shared object file: No such file or directory

只需将C:\Program Files (x86)\Git\bin 目录下的libiconv-2.dll 复制到 C:\Program Files (x86)\ICW\bin目录下就可以了

windows 下搭建git服务器,及问题处理。

第一篇博文,没太注意排版,目的是帮大家解决问题,如果看了我的文章真对大家有所帮助请赞一下咯!

上一篇:mongo删除指定字段,可多个字段同时删除


下一篇:设计上如何避免EMC问题