系统是Centos7,本文章记录搭建过程中遇到的问题,方便以后参考
1.安装git
#yum install -y git
2.创建一个新用户为git服务
useradd git (添加一个用户,用户名叫git)
passwd git (修改用户git的密码)
对于这个用户,你不一定要叫git,但是一般的都叫git,我们就不再破坏这种规矩了。
这个指令之后,在/home下就多了一个git文件夹,代表我们的git用户
然后用ssh远程连接试下是否能连接,如果无法连接,可能是没给该用户这个权限,我们可以更改etc/ssh/sshd_config。在其中增加AllowUsers:username(可以多个,空格分开)给普通用户增加ssh权限。
这里就是AllowUsers:git
3.创建仓库
在/home/git下创建我们的项目仓库,假设我的项目叫Sample,我们先cd到git目录下,然后
mkdir sample.git
创建一个文件夹,这个名称你也可以任意,但是一般的习惯是 项目.git来命名
接着进入 sample.git目录下,使用
git init --bare
创建一个仓库,一定要带bare参数
然后修改sample.git 的所有者
chown -R git:git **sample.git**/
chown -R 用户名:所属群组
4.修改配置文件
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存重启sshd服务,命令依据版本不同有区别的,可以百度下
5.创建存放公钥的文件
AuthorizedKeysFile .ssh/authorized_keys
这个配置表示,我们的公钥放在.ssh/authorized_keys这个文件中,而.ssh目录是在工程目录的上级目录里,也就是/home/git这个目录下,我们在这个目录下创建一个.ssh文件夹,修改.ssh 文件夹的 owner 修改为 git。
chown -R git:git .ssh
6.将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件
我们采用的是ssh连接方式,如果不想每次输密码,就需要用密钥验证,首先在git bash中
ssh-keygen -t rsa -C "472323087@qq.com"
邮箱任意,然后会让你输密码,直接回车,也就是不填密码,否则以后你每次都要输这个密码。创建完成会在c/user/用户名 下生成一个.ssh文件夹,里头一个id_rsa.pub和id_rsa,id_rsa.pub就是给服务器的,id_rsa你留着用以验证。
公钥生成完毕,就将它导入服务器。
打开Git Bash
$ ssh git@server 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
这里补充一点,git的地址结构是
用户名@服务器ip地址:git仓库目录
我们这里的话是
git@192.168.1.10:/home/git/sample.git
执行上条命令,会要让你输入git用户的密码,这个密码就是步骤2里的密码。然后去服务器看下我们的
/home/git/.ssh下是否多了一个authorized_keys 文件,用 cat authorized_keys
查看文件内容,是否和客户端的id_rsa.pub内容一致。
修改 .ssh 目录的权限为 700
修改 .ssh/authorized_keys 文件的权限为 600
cd 到git目录下
chmod 700 .ssh
cd 到git/.ssh目录下
chmod 600 authorized_keys
如此,服务器配置完毕。
7.从服务器clone代码
git bash
git clone git@服务器ip地址:/home/git/sample.git
然后随便加点东西看下提交等操作有没有问题