git 通过ssh 进行认证连接
2010-10-26 15:14
232 查看
首先安装git
emerge -av git
一条命令搞定,如果你使用ubuntu redhat 有相应的yum apt-get 工具,
git麻烦在用户管理及管理上,下面上三种解决办法:
# 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
#
# 有好几个办法可以让团队的每个人都有访问权。
第一个办法
是给每个人建立一个账户,直截了当但过于繁琐。反复的运行 adduser 并且给所有人设定临时密码可不是好玩的。
#
# 第二个办法
是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh /authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响 commit的记录。
#
# 另一个办法
是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效 # 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
#
为了简便选用了第二种办法
,这种办法采用SSH公钥认证。
这里为了演示建立user1 user2 两个用户分别模拟两个开发人员,
建立git 用户,源码是通过git 用户进行初始化,可以将 它当作项目经理
并各自修改密码
产生公钥
ssh-keygen -C "你的email地址"
-t rsa
后面直接回车直到结束,中间可以不需要任何设置,该命令将生成一对非对称的公/私密钥,默认它们被存储在:
XP/2003用户:c:/Documents and Settings/登陆名/.ssh
Vista用户: c:/Users/登陆名/.ssh
linux :~/.ssh
下面分别为user1 user2 产生公钥,私钥
这样有/home/user1/.ssh 下会产生两个文件,id_rsa 私钥,和id_rsa.pub公钥文件
公钥样子大概如此
该.ssh文件夹下面,私钥放在id_rsa文件里面,不用理会它;
对于user2 ,git 用户作相同处理,然后各自的目录会生成相应的文件
然后需要将user1 user2 各自的公钥文件提供给git 用户,
2、在linux服务器上将公钥加到git用户的authorized_keys文件中。
可以参考:http://github.com/git-on-windows/rookies
git用户的建立及设置参考:http://progit.org/book/zh/ch4-4.html
只要把它们加入
文件(译注:本例加入到了文件尾部):
这样认证就建好了
然后用git 用户在/home/git目录下建一个库 project_repos.git/
然后启运服务 /etc/init.d/git-daemon restart
当然也要启动sshd
/etc/init.d/sshd start
user1 连接 (这里测试时将porject_repos.git 改为repos.git 了, 此系小节,可忽略)
emerge -av git
一条命令搞定,如果你使用ubuntu redhat 有相应的yum apt-get 工具,
git麻烦在用户管理及管理上,下面上三种解决办法:
# 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
#
# 有好几个办法可以让团队的每个人都有访问权。
第一个办法
是给每个人建立一个账户,直截了当但过于繁琐。反复的运行 adduser 并且给所有人设定临时密码可不是好玩的。
#
# 第二个办法
是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh /authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响 commit的记录。
#
# 另一个办法
是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效 # 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
#
为了简便选用了第二种办法
,这种办法采用SSH公钥认证。
这里为了演示建立user1 user2 两个用户分别模拟两个开发人员,
建立git 用户,源码是通过git 用户进行初始化,可以将 它当作项目经理
并各自修改密码
产生公钥
ssh-keygen -C "你的email地址"
-t rsa
后面直接回车直到结束,中间可以不需要任何设置,该命令将生成一对非对称的公/私密钥,默认它们被存储在:
XP/2003用户:c:/Documents and Settings/登陆名/.ssh
Vista用户: c:/Users/登陆名/.ssh
linux :~/.ssh
下面分别为user1 user2 产生公钥,私钥
这样有/home/user1/.ssh 下会产生两个文件,id_rsa 私钥,和id_rsa.pub公钥文件
公钥样子大概如此
该.ssh文件夹下面,私钥放在id_rsa文件里面,不用理会它;
对于user2 ,git 用户作相同处理,然后各自的目录会生成相应的文件
然后需要将user1 user2 各自的公钥文件提供给git 用户,
2、在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 了, 此系小节,可忽略)
相关文章推荐
- 通过SSH认证连接GIT
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
- secureCRT通过代理进行ssh连接
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
- 通过配置ssh密钥认证连接Git
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
- [Raspberry]树莓派Raspberry 通过wifi 无法进行ssh连接
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
- Git使用基本方法二(通过SSH加密传输连接git服务器)
- vscode中利用git通过ssh连接github
- Mac下git通过SSH连接本地服务器
- github使用(通过webstorm创建一个nodejs项目的本地git库,推送到github进行管理,(ssh密钥无用户密码方式))
- 通过ssh连接git操作
- vscode中利用git通过ssh连接github的方法
- ssh通过密钥进行连接
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除