Linux(CentOS)搭建git服务端

来源:互联网 发布:知行中学在大连市排名 编辑:程序博客网 时间:2024/06/07 06:03

本次环境:

  • CentOS Linux release 7.2.1511
  • Git 1.8.3.1

1.查看是否已安装git

$ rpm -qa git

若已安装,可以用yum remove git 删除。

2.yum安装git

$ yum install -y git

安装成功,查看git版本信息:

$ git —version

3.添加git用户,运行git服务

$ groupadd git$ adducer git -g git

4.创建ssh认证文件authorized_keys并设置权限

authorized_keys用于存放客户端的ssh key,利用SSH的公钥来完成验证,避免git clone时输入密码。

$ cd /home/git$ mkdir .ssh$ chmod 700 .ssh$ touch .ssh/authorized_keys$ chmod 600 .ssh/authorized_keys$ cd /home$ chown -R git:git git

5.Git服务器打开RSA认证

编辑sshd_config文件

$ vi /etc/ssh/sshd_config

如下三项:

RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile   .ssh/authorized_keys

可以看到认证公钥目录正是上面我们创建的/home/git/.ssh/authorized_keys。

6.客户端创建ssh key并保存至服务端authorized_keys文件

(a)windows系统

打开Git Gui,“帮助”—“Show SSH Key”,将id_rsa.pub公钥中的内容保存至服务端authorized_keys文件(多个客户端,每个key一行)。

这里写图片描述

这里写图片描述

$ vi /home/git/.ssh/authorized_keys

编辑后保存。

(b)MacOS系统

安装git步骤略。
……
创建一个全球用户名、全球邮箱:

$ git config --global user.name "username"$ git config --global user.email "youremail@example.com"

cd ~进入根目录
输入命令ssh-keygen生成ssh-key,如果有提示,一直按回车

$ ssh-keygen

这里写图片描述

提示已经生成rsa文件到指定目录。
同样,查看id_rsa.pub公钥中的内容,并保存至服务端authorized_keys文件。

7.创建git仓库

为了方便,我们把仓库也放入home目录。
给予git权限。

$ cd /home$ mkdir gitrepo$ chown git:git gitrepo

初始化该仓库

$ cd gitrepo/$ git init --bare test_repo.git

提示:初始化空的 Git 版本库于 /home/gitrepo/test_repo.git/。

给予git权限:

$ chown -R git:git test_repo.git

8.git clone

现在尝试用git clone刚才新建的test_repo项目:

D:\gitGetTest>git clone git@106.14.224.204:/home/gitrepo/test_repo.git

第一次clone会提示:

The authenticity of host 'xx.xx.xx.xx' can't be established.ECDSA key fingerprint is xx.xx.xx.xx.xx.Are you sure you want to continue connecting (yes/no)?

输入yes回车即可,后面不会再提示。

这里写图片描述

可以看到,test_repo项目已经clone至客户端。

9.禁用git用户的shell登录

出于安全考虑,禁止git用户的shell登录,通过编辑/etc/passwd文件完成。

$ vi /etc/passwd

修改
git:x:1000:1001::/home/git:/bin/bash

git:x:1000:1001::/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell。

综上,git服务端已经搭建完毕。

原创粉丝点击