git 经过ssh 进行认证链接

首先安装githtml

emerge -av git  一条命令搞定,若是你使用ubuntu redhat 有相应的yum  apt-get 工具,linux

 

git麻烦在用户管理及管理上,下面上三种解决办法:git

# 若是须要团队里的每一个人都对仓库有写权限,又不能给每一个人在服务器上创建帐户,那么提供 SSH 链接就是惟一的选择了。咱们假设用来共享仓库的服务器已经安装了 SSH 服务,并且你经过它访问服务器。  
#   
# 有好几个办法可让团队的每一个人都有访问权。github

第一个办法 是给每一个人创建一个帐户,直截了当但过于繁琐。反复的运行 adduser 而且给全部人设定临时密码可不是好玩的。  
#   
# 第二个办法 是在主机上创建一个 git 帐户,让每一个须要写权限的人发送一个 SSH 公钥,而后将其加入 git 帐户的 ~/.ssh /authorized_keys 文件。这样一来,全部人都将经过 git 帐户访问主机。这丝绝不会影响提交的数据——访问主机用的身份不会影响 commit的记录。  
#   
# 另外一个办法 是让 SSH 服务器经过某个 LDAP 服务,或者其余已经设定好的集中受权机制,来进行受权。只要每一个人都能得到主机的 shell 访问权,任何可用的 SSH 受权机制都能达到相同效  # 若是须要团队里的每一个人都对仓库有写权限,又不能给每一个人在服务器上创建帐户,那么提供 SSH 链接就是惟一的选择了。咱们假设用来共享仓库的服务器已经安装了 SSH 服务,并且你经过它访问服务器。  
 
#   shell

为了简便选用了第二种办法 ,这种办法采用SSH公钥认证。 ubuntu

这里为了演示创建user1 user2 两个用户分别模拟两个开发人员,
                 创建git 用户,源码是经过git 用户进行初始化,能够将 它看成项目经理
并各自修改密码

产生公钥

ssh-keygen -C "你的email地址"  -t rsa windows

后面直接回车直到结束,中间能够不须要任何设置,该命令将生成一对非对称的公/私密钥,默认它们被存储在:
XP/2003用户:c:/Documents and Settings/登录名/.ssh
Vista用户: c:/Users/登录名/.ssh 服务器

linux          :~/.sshssh

下面分别为user1 user2 产生公钥,私钥

 

 

这样有/home/user1/.ssh 下会产生两个文件,id_rsa 私钥,和id_rsa.pub公钥文件工具

公钥样子大概如此

 

该.ssh文件夹下面,私钥放在id_rsa文件里面,不用理会它;

对于user2 ,git 用户做相同处理,而后各自的目录会生成相应的文件

 

而后须要将user1 user2 各自的公钥文件提供给git 用户,

 

 

二、在linux服务器上将公钥加到git用户的authorized_keys文件中。
  能够参考:http://github.com/git-on-windows/rookies
  git用户的创建及设置参考:http://progit.org/book/zh/ch4-4.html

只要把它们加入 authorized_keys 文件(译注:本例加入到了文件尾部):

 

这样认证就建好了

而后用git 用户在/home/git目录下建一个库 project_repos.git/

 

而后启运服务  /etc/init.d/git-daemon restart

固然也要启动sshd 

                 /etc/init.d/sshd start

user1 链接 (这里测试时将porject_repos.git 改成repos.git 了, 此系小节,可忽略)