CentOS 7 安装git服务器

安装

yum -y install git 

创建git用户并设置密码

useradd git
passwd git

###创建git目录和一个空git仓库

cd /
mkdir /home/git
cd  /home/git
git init --bare test.git
chown -R git:git test.git

客户运行git bash

git clone [email protected]:/data/git/test.git
# 远程服务器不同端口
git clone ssh://[email protected]:8888/data/git/test.git

这个时候需要输入密码

配置服务端的ssh访问

客户运行git bash,生成秘钥

ssh-keygen -t rsa -C "[email protected]"

该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。

检查是否已经拥有ssh公钥和私钥:进入用户的主目录。

Windows系统:C:\Users\用户名
Linux系统:/home/用户名
Mac系统:/Users/用户名

然后查看是否有.ssh文件夹,此文件夹下是否有如下几个文件。

用户主目录的.ssh文件夹下
.ssh
├── id_rsa
└── id_rsa.pub # 我们要用的私钥

将id_rsa.pub中的内容写到服务器的authorized_keys文件中。

# 1.切换到git账号
$ su git
# 2.进入 git账户的主目录
$ cd /home/git

# 3.创建.ssh的配置,如果此文件夹已经存在请忽略此步。
$ mkdir .ssh

# 4. 进入.ssh目录并创建authorized_keys文件,拷贝客户端创建的的ssh的公钥,一行一个。
$ cd /home/git/.ssh
$ touch authorized_keys

# 5. 设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
$ chmod 700 /home/git/.ssh/
$ chmod 600 /home/git/.ssh/authorized_keys

禁止客户端shell登录

第一步:
给 /home/git 下面创建git-shell-commands目录,并把目录的拥有者设置为git账户。可以直接用git账号登录服务器终端操作。

$ su git
$ mkdir /home/git/git-shell-commands

第二步:修改/etc/passwd文件,修改

$ vim /etc/passwd

# 可以通过 vim的正则搜索快速定位到这行,  命名模式下  :/git:x

# 找到这句, 注意1000可能是别的数字
git:x:1000:1000::/home/git:/bin/bash

# 改为:
git:x:1000:1000::/home/git:/bin/git-shell

# 最好不要直接改,可以先复制一行,然后注释掉一行,修改一行,保留原始的,这就是经验!!!
# vim快捷键: 命令模式下:yy复制行, p 粘贴  0光标到行首 $到行尾 x删除一个字符  i进入插入模式 
# 修改完后退出保存:  esc进入命令模式, 输入::wq!   保存退出。

参考:https://www.cnblogs.com/fly_dragon/p/8718614.html

发布了65 篇原创文章 · 获赞 88 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/uisoul/article/details/88758194