Git使用之搭建基于SSH的Gitserver(上篇)

时间:2023-03-08 16:15:50

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

很easy,基本就是一路下一步,有几个地方须要设置一下:

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

Git使用之搭建基于SSH的Gitserver(上篇)

Git使用之搭建基于SSH的Gitserver(上篇)

2.2 安装Copssh

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

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

Git使用之搭建基于SSH的Gitserver(上篇)

3. 配置Copssh

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

从開始菜单中打开COPSSH Control Panel

Git使用之搭建基于SSH的Gitserver(上篇)

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

Git使用之搭建基于SSH的Gitserver(上篇)

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

Git使用之搭建基于SSH的Gitserver(上篇)

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

点击Keys创建该用户相应的訪问密钥

Git使用之搭建基于SSH的Gitserver(上篇)

点击Add button

Git使用之搭建基于SSH的Gitserver(上篇)

Git使用之搭建基于SSH的Gitserver(上篇)

设置密钥相应的訪问password及保存后的名称

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

Git使用之搭建基于SSH的Gitserver(上篇)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW9zaGlsYW5nMjI0OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

点击上步的ForWardbutton,完毕密钥文件的创建。

Git使用之搭建基于SSH的Gitserver(上篇)

生成的私钥文件UIAdminkey.ppk。相应的authorized_keys已经自己主动生成在 C:\SSH\home\<username>\.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的Gitserver(上篇)

Git使用之搭建基于SSH的Gitserver(上篇)

创建仓库:

Git使用之搭建基于SSH的Gitserver(上篇)

来到C:\SSH\home\<username>\目录下,新建一个目录作为git仓库,比如C:\SSH\home\UIAdmin\UICode。我是通过TortoiseGit创建仓库,当然你也能够用其它gitGUI工具或通过命令行,记得勾选bare(用于多人作业)

至此在Windows下基于SSH的Gitserver就搭建完毕了。

5. 常见问题

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

【1】訪问SSH的防火墙阻止了22号port。

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

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

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