centos git服务器搭建

·  阅读 2061

安装git服务器环境,搭建自己的git服务端代码仓库。

服务器环境:centos

客户端: MacOS

1.服务端安装git

1.1 使用yum命令安装git

[root@localhost home] yum install -y git
复制代码

等待安装完成,安装完成后查看git版本号。

1.2 查看git版本号

[root@localhost home] git --version
git version 1.8.3.1  //显示结果 
复制代码

使用yum安装的git,版本号是1.8.3.1。

1.3 创建git用户组合git用户

[root@localhost home] groupadd git       //创建用户组git
[root@localhost home] useradd -g git git  //创建用户git,并把git添加到用户组git
[root@localhost home] passwd git    //设置用户密码,需要是复杂的,否则linux系统检查密码会失败
复制代码

2.服务端配置git仓库

2.1 创建git仓库

设置 /home/data/git/gittest.git 为Git仓库,然后把Git仓库的owner修改为git

[root@localhost home]# mkdir -p /home/git/data/git/gittest.git
[root@localhost home]# git init --bare data/git/gittest.git
Initialized empty Git repository in /home/data/git/gittest.git/
[root@localhost home]# cd data/git/
[root@localhost git]# chown -R git:git gittest.git/
复制代码

2.2 客户端clone git仓库

然后从 Linux Git 服务器上 clone 项目,ssh默认端口是22

git clone git@192.168.0.10:/home/data/gittest.git
复制代码

如果SSH用的不是默认的22端口,则需要使用以下的命令(假设SSH端口号是8000):

git clone ssh://git@192.168.0.10:8000/home/data/gittest.git
复制代码

首次连接到目标git时有提示

The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/FGH059EqoUOERFoZdfmMh3B259nhkfmvdamkd.
Are you sure you want to continue connecting (yes/no)? 
复制代码

输入yes即可,此时ssh下会多出一个文件known_hosts,以后在这台电脑上再次连接目标Git服务器时不会再提示上面的语句。

需要输入密码即可下载代码仓库,下面介绍采用SSH公钥来进行验证,代替每次输入密码。

3.服务器端Git打开RSA认证

3.1 服务端打开RSA验证

进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
复制代码

保存并重启 sshd 服务:

systemctrl sshd restart
复制代码

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理Git服务的用户是git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录 .ssh,然后把 .ssh文件夹的owner修改为 git

chown -R git:git .ssh
复制代码

3.2 客户端创建SSH公钥、私钥

客户端执行如下命令:

ssh-keygen -t rsa -C "345432757@qq.com"
复制代码

此时 ~/.ssh 下会多出两个文件id_rsa和id_rsa.pub

id_rsa 是私钥

id_rsa.pub 是公钥

3.3 导入客户端公钥到git服务器

执行如下命令,把公钥拷贝到服务器authorized_keys文件(这一步需要输入git密码)

ssh git@127.0.0.1 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
复制代码

回到服务器端,查看.ssh下是否存在authorized_keys文件。

3.4 重要

重要:

修改 .ssh 目录的权限为 700

修改 .ssh/authorized_keys 文件的权限为 600

chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys 
复制代码

3.5 客户端再次clone远程仓库

git clone ssh://git@192.168.0.10:8000/home/data/gittest.git
复制代码

不需要再次输入密码。

3.6禁止git用户ssh登录服务器

之前在服务器端创建的git用户不允许ssh登录服务器

编辑/etc/passwd

找到:

git:x:502:504::/home/git:/bin/bash
复制代码

修改为

git:x:502:504::/home/git:/bin/git-shell
复制代码

此时git用户可以正常通过ssh使用git,但无法通过ssh登录系统。

分类:
开发工具
标签:
收藏成功!
已添加到「」, 点击更改