Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之搭建基于SSH的Git服务器(上篇)

1. 需要软件

msysgit (Gitfor Windows)

Copssh (OpenSSHfor Windows,新版本已经开始收费了大家可以去搜索引擎找以前的免费版Copssh_4.1.0下载)

GitTortoiseGit

我用的版本分别是Git-1.9.2-preview20140411、Copssh_4.1.0、TortoiseGit-1.8.8.0-64bit.msi,其他版本的安装和配置可能略有差异但也大同小异。


2. 安装步骤

2.1 安装msysgit

非常简单,基本就是一路下一步,有几个地方需要设置一下:

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)


2.2 安装Copssh

注意不要使用默认的Program Files下的安装路径,也不要在路径中带空格,否则会引起不必要的麻烦导致失败,例如我就装在C:\SSH。

Git使用之筹建基于SSH的Git服务器(上篇)


安装过程会创建一个名为SvcCOPSSH的系统用户用于启动Copssh的服务,这里默认即可,提醒一点,如果卸载重装Copssh要记得手动删除系统用户SvcCOPSSH(windows用户),否则Copssh服务将无法正常启动。

Git使用之筹建基于SSH的Git服务器(上篇)


3. 配置Copssh

为系统添加一个名为UIAdmin的管理员账户。

 

从开始菜单中打开COPSSH Control Panel

Git使用之筹建基于SSH的Git服务器(上篇)


应该看到服务处于运行状态

Git使用之筹建基于SSH的Git服务器(上篇)


然后在Users选卡中添加一个用户,选择Windows shell类型,去掉密码认证

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)


点击Keys创建该用户对应的访问密钥

Git使用之筹建基于SSH的Git服务器(上篇)


点击Add 按钮

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)


设置密钥对应的访问密码及保存后的名称

Git使用之筹建基于SSH的Git服务器(上篇)


在C:\SSH\home目录下,找到UIAdmin文件夹,为其添加UIAdmin系统用户对其完全控制的权限。

Git使用之筹建基于SSH的Git服务器(上篇)


点击上步的ForWard按钮,完成密钥文件的创建。

Git使用之筹建基于SSH的Git服务器(上篇)


生成的私钥文件UIAdminkey.ppk,对应的authorized_keys已经自动生成在 C:\SSH\home\<用户名>\.ssh 目录下

 

4. 配置git到SSH Server

复制几个必要的文件到C:\SSH\bin下

从git安装目录下的\libexec\git-core文件夹下将git.exe, git-receive-pack.exe, git-upload-archive.exe,git-upload-pack.exe复制到C:\SSH\bin

从git安装目录下的\bin\libiconv-2.dll复制到C:\SSH\bin下。


5. 创建git仓库

安装TortoiseGit-1.8.8.0-64bit:

Git使用之筹建基于SSH的Git服务器(上篇)

Git使用之筹建基于SSH的Git服务器(上篇)

 

创建仓库:

Git使用之筹建基于SSH的Git服务器(上篇)


来到C:\SSH\home\<用户名>\文件夹下,新建一个文件夹作为git仓库,例如C:\SSH\home\UIAdmin\UICode,我是通过TortoiseGit创建仓库,当然你也可以用其他gitGUI工具或通过命令行,记得勾选bare(用于多人作业)

至此在Windows下基于SSH的Git服务器就搭建完成了。


5. 常见问题

1、客户端通过URL,如 ssh://<用户名>@127.0.0.1:22/SSH/home/<用户名>/UIAdmin克隆代码时,提示gitdid not exit cleanly (exit code 128):

 

【1】访问SSH的防火墙阻止了22号端口。

通过单击「开始」按钮 「开始」按钮的图片,然后单击“控制面板”,打开“Windows 防火墙”。在搜索框中,键入防火墙,然后单击“Windows 防火墙”。

 

在左窗格中,单击“高级设置”。 需要管理员权限 如果系统提示您输入管理员密码或进行确认,请键入该密码或提供确认。

 

在“高级安全 Windows 防火墙”对话框的左窗格中,单击“入站规则”,然后在右窗格中,单击“新建规则”,添加22端口。