安装git:
yum install git
创建git仓库
git init --bare /usr/test.git 此处在/usr路径下创建了一个test.git 的仓库
创建用户组
因为需要多人协作,所以可以直接创建用户组,统一管理。
groupadd gitgroup 这里创建了一个名为gitgroup的用户组
创建2个用户并且设置密码,添加到组里:
adduser username1 passwd 123
adduser username2 passwd 123
usermod -G gitgroup username1
usermod -G gitgroup username2
给组赋予权限
chgrp -R gitgroup /usr/
chmod -R 777 /usr/ 这里是给这个文件路径下的文件写权限,不然只能pull代码 不能push
禁止linux使用git的ssh登录
这里禁止的意义是为了服务器的安全性,避免从git的ssh可以直接登录服务器
编辑/etc/passwd文件
找到 : git:x:1001:1001:,,,:/home/git:/bin/bash
改为 : git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
*可能用到的命令:修改ssh后,有可能需要重启ssh才能生效
SSH重启: service sshd restart
SSH启动: service sshd start
实例:
clone 项目
git@ip地址:/仓库路径
实例:git clone git@111.111.11.11:/usr/test.git
注意:出现warning: You appear to have cloned an empty repository. 只是因为是个空项目,没有关系
以上并没有配置公钥私钥,因此每次更新都需输入密码,我们可以通过以下配置进行密钥登陆,无需重复输入密码。
1.创建ssh证书
*这里创建ssh证书,是在本地创建,而不是在服务器端创建的。这个需要注意。以win为例,打开git命令面板,
1. 先配置用户名和邮箱:(如果已经配置了则跳过)
git config --global user.name '你的名称'
git config --global user.email '你的邮箱地址'
2.生成公钥和私钥
ssh-keygen -t rsa -C "你的邮箱地址"
回车后会看到以下界面。这里是选择ssh文件保存的路径(直接回车),我选择默认路径,即最后一行显示的、 保存在了c盘的这个位置中(c/user/Jioho/.ssh/id_rsa)。
紧接着会让你输入密码(会有2次确认,简短的英语很好理解的)。默认保持不输入(也是直接回车,避免每次clone代码都需要输入密码的麻烦)
然后我们到刚才提示的c盘的目录中,找到我们需要的ssh文件。打开文件夹后,里面会有2份文件,分别为公钥和私钥。
这时候我们就需要把id_rsa.pub文件放到服务器上,准备下一步的工作
2.导入自己的ssh证书
以上生成SSH证书的步骤弄懂后,就需要把自己的ssh公钥证书导入服务器的公钥管理的地方
在服务器中找到 /home/git/.ssh/authorized_keys 文件、如果没有就自己创建一个authorized_keys文件,注意路径不要弄错。
找到刚才放在服务器上的 id_rsa.pub文件。然后使用命令:cat id_rsa.pub >> authorized_keys
注意路径不要弄错,因为我这是在 /home/git/.ssh/ 的目录中了
(如果linux命令用的不熟的,其实可以直接使用winscp编辑文件,把id_rsa.pub文件的内容复制粘贴到authorized_keys文件中。方法不是唯一)
最重要的一点,也是最容易出错的一点!linux一切皆文件,所以要给对应的文件设置好组和权限!!
*注:这里的/home/git/下的文件所有者必须都为git .ssh的权限为最少700或者755 authorized_keys权限最少为600
以上就全部完成!!