首页 > 代码库 > 自己搭建Git服务器并实现无密码访问.

自己搭建Git服务器并实现无密码访问.

环境: win7 64位

软件准备:  
版本号可以无视
1.Git-1.9.2-preview20140411
2.GitExtensions24703SetupComplete
3.vs2010(非必要)
4.vbox
5.debian安装光盘DVD第一张
 
 
git服务器实际上就是一个linux文件服务器.通过ssh这个协议来处理的.
各种windows架设都太麻烦而且会破坏一些已有的配置.我对linux又比较熟悉,所以还是架设linux好了.
搞清楚这一点,下面就很好办了.
要解决三个问题: 服务器架设及配置, 客户端程序安装及配置, 虚拟机和宿主机互访问题(通常是宿主机访问虚拟机)
 
一 服务器架设及配置
 
1.安装debian在虚拟机vbox中
locale选择英文, 最好断开网络安装,其它默认就好.
 
2.配置debian
 
安装git-core
apt-get install git-core

生成帐号git及创建必要目录

adduser git
mkdir ~/.ssh

在git的home里创建一个中央仓库

mkdir  /home/git/foo.git 
cd /home/git/foo.git 
git --bare init

 

 
二 虚拟机和宿主机互访问题
 
使用默认的NAT方式 配置端口转发
本机的2200端口
子系统的22端口
访问形式 
ssh git@127.0.0.1:2200

即可访问虚拟机的22端口的ssh服务了

 
三 客户端程序安装及配置
 
1.先安装git, git-extentions
如果提示缺失cygpath.exe还要安装cygwin,把cygpath.exe和cygwin1.dll复制到git bin的目录下.
 
2.生成密钥  
ssh-keygen

得到~/.ssh下的两个文件

id_rsa 私钥(保存在本地,不要重命名也不要移动)
id_rsa.pub 公钥
 
 
3.上传公钥到服务器
 
打开git bash
scp ~/.ssh/id_rsa.pub git@127.0.0.1:2200
ssh git
@127.0.0.1:2200

登入虚拟机后:

cat id_rsa.pub >> ~/.ssh/authorized_keys

4. 配置git-extentions

ssh使用openssh
 
5. url推送方式
ssh://git@127.0.0.1:2200/home/git/test2.git
2200即为刚刚设置的本机端口
 
收尾: 修改虚拟机的访问方式只能通过密钥. 
/etc/ssh/sshd_config
PasswordAuthentication no
 
问题:  vs2010默认推送的是远程而不是url...困扰中.
 
 2014.5.29 解决了:
远程为管理远程里默认配置的地址,而url地址为不经常使用而自定义的地址