下面的几节中,你会了解如何扩展到更复杂的设定。这些内容包含如何避免为每一个用户建立一个账户,给仓库添加公共读取权限,架设网页界面等等。然而,请记住这一点,如果只是和几个人在一个私有项目上合作的话,仅仅 是一个
SSH 服务器和裸仓库就足够了。
操作步骤汇总:
此步骤是说明根据现有的仓库创建一个裸仓库,即只使用现有仓库中的.git文件
1、从现有仓库中创建裸仓库
# git clone --bare my_project my_project.git
2、把裸仓库放到服务器的某一个目录下
# scp -r my_project.git user@git.example.com:/opt/git
3、修改仓库权限为可读写
# ssh user@git.example.com
# cd /opt/git/my_project.git
# git init --bare --shared
4、其他用户clone仓库
# git clone user@git.example.com:/opt/git/my_project.git
2.2 小型安装
架设 Git 服务最复杂的地方在于用户管理。如果需要仓库对特定的用户可读,而给另一部分用户读写权限,那么访问和许可安排就会比较困难。
2.2.1 SSH连接
如果你想在你的仓库上设置更复杂的访问控制权限,只要使用服务器操作系统的普通的文件系统权限就行了。
如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
有几个方法可以使你给团队每个成员提供访问权。
第一个就是给团队里的每个人创建账号,这种方法很直接但也很麻烦。或许你不会想要为每个人运行一次 adduser 并且设置临时密码。
第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这一点也不会影响提交的数据——访问主机用的
身份不会影响提交对象的提交者信息。
另一个办法是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个用户可以获得主机的 shell 访问权限,任何 SSH 授权机制你都可视为是有效的。
3、生成 SSH 公钥
许多 Git 服务器都使用 SSH 公钥进行认证。
为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。这个过程在所有操作系统上都是相似的。
首先,你需要确认自己是否已经拥有密钥。
默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
# cd ~/.ssh

# ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。.pub 文件是你的公钥,另一个则是私钥。
如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们。
在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-72418-5.html
我国舰队才刚刚无害通过阿留申群岛海域
有利益就有冲突
给中国造成安全威胁的情势下
伊拉克跟俄合作