日期:2014-05-17 浏览次数:21097 次
????? Git有四种协议传输数据:本地协议,SSH协议,Git协议和HTTP(S)协议。这四种协议各有应用场合,其中,最常用的是SSH协议,这是因为大多数环境已经支持通过SSH对服务器的访问,即便不支持,架设SSH协议也是比较容易的。而且,SSH是四种协议中唯一便于同时具有读和写功能的网络协议,这对协同开发是必要的,所以这里选择SSH协议来搭建Git服务器。
?
第一步:准备工具
msysgit:Windows环境下的Git,通过该工具安装Git。
第二步:安装Git和Copssh
????? 在服务器端安装Git和Copssh。假设Git的安装目录为“C:\Git”,Copssh的安装目录为“C:\SSH”。注意在安装Copssh时,需要手动激活一个用户,假设为最高权限管理者Administrator,因为我们要使用公钥私钥方式进行认证,所以不要勾选“ password?authenticatin”选项。完成后,进入SSH目录,找到etc目录下的ssh_config和sshd_config文件,去除ssh_config中“#?Port?22”前的#号,确认sshd_config文件中的Port也为22。同时,确保防火墙没有关闭SSH端口。
?
第三步:使Copssh能使用Git
????? 经过前两步,服务器上Git和Copssh都已能正常工作,也可以通过SSH协议访问服务器了,但是还不能通过Copssh使用Git,这样还不能远程管理Git仓库。要想远程使用Git,需完成如下工作:在“C:\Git\libexec\git-core”目录下找到git.exe,git-upload-pack.exe,git-upload-archive.exe和git-receive-pack.exe四个文件,将它们复制到“C:\SSH\bin”目录下。同时,将“C:\Git\bin”目录下的“libiconv-2.dll”文件也复制到该目录下。最后,重启Copssh即可。这样,通过SSH协议连上服务器后就可以使用Git了。
?
第四步:配置用户环境
????? 默认情况下,Copssh会在“C:\Documents?and?Settings\Administrator”目录下寻找authorized_keys文件,这是我们不希望看到的,需要配置使得authorized_keys文件位于“C:\SSH\home\Administrator\.ssh”目录下。在“C:\SSH\home\Administrator”目录下找到.bashrc文件,在“#?User?dependent?.bashrc?file”行下添加“?export?HOME=/C/SSH/home/Administrator”,注意“/C/SSH”为Copssh安装目录,按照自己的情况填写。同时注意,该行前面有一个空格且斜线为Unix下的风格样式。完成修改后,将.bashrc文件复制到“C:\Documents?and?Settings\Administrator”目录下。
?
第五步:测试
????? 打开本地Git,要想通过SSH协议与Git服务器通信,需要通过公钥私钥认证。为了检查本地是否存在公钥私钥文件对,可以通过命令“cd ~/.ssh”切换到.ssh目录查看,文件名大致为id_rsa.pub和id_rsa,前者为公钥,后者为私钥。如果不存在,则通过git命令“ssh-keygen”产生,然后将产生的公钥文件内容加入到Git服务器上的authorized_keys文件即可。
????? 假设Git服务器上存在hello_world.git仓库,位于“C:\SSH\home\Administrator”目录下,且Git服务器IP为192.168.10.45,那么就可以在本地克隆hello_world.git仓库,命令为“git clone Administrator@192.168.10.45:hello_world.git”,注意用户名(即:Administrator)区分大小写。
?
?
参考资料: