1. 服务器端的修改
将下列两个注册表键中的 PortNumber 均改成自定义的端口即可(修改时选择十进制):
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Terminal Server/Wds/Repwd/Tds/Tcp
(本人注:经过试验,这条可以不用修改,主要是下面的)
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp
对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务
如果要阻止所有TCP 流量,请单击仅允许,但不要在TCP 端口列中添加任何端口号。
“TCP/IP 筛选”只能筛选入站流量。此功能不影响出站流量,也不影响为接受来自出站请求的响应而创建的响应端口。
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)区分大小写。
参考资料:
http://www.2cto.com/os/201110/108467.html
(完)