本人linux 是:centos-7.6, kernel是:3.10.0-957.12.1.el7.x86_64
现在搭建一个git server
1.安装 Open SSH Server
目的是确保我们的linux系统能够被ssh远程访问。安装命令如下:
// 查看 open ssh server的安装状态
# yum list installed | grep openssh-server
// 安装 open ssh server
# yum install openssh-server
如果安装成功,查询出来结果如下:
[root@git-server ~]# yum list installed | grep openssh-server
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
openssh-server.x86_64 7.4p1-16.el7 @base
1.1. 开放远程访问权限
修改Linux的配置文件,开放远程访问。
<!-- 打开配置文件 -->
# vim /etc/ssh/sshd_config
<!-- 在 Vim 模式下进入文件编辑模式 -->
# i
修改内容如下
原始值 | 修改后值 |
---|---|
#Port 22 | Port 22 |
#ListenAddress 0.0.0.0 | ListenAddress 0.0.0.0 |
#ListenAddress :: | ListenAddress :: |
#PermitRootLogin yes | PermitRootLogin yes |
#PasswordAuthentication yes | PasswordAuthentication yes |
保存退出
<!-- 退出文本编辑模式 -->
# [esc]
<!-- 保存文件并退出 Vim -->
# :wq
1.2. 启动ssh 服务
使用下面命令开启:
//Centos7 开始用 systemctl 来开启service服务
<!-- 停止 SSH 服务 -->
# systemctl stop sshd.service
<!-- 启动 SSH 服务 -->
# systemctl start sshd.service
<!-- 重启 SSH 服务 -->
# systemctl restart sshd.service
===老版本的Centos需要下面命令====
<!-- 停止 SSH 服务 -->
# sudo service sshd stop
<!-- 启动 SSH 服务 -->
# sudo service sshd start
<!-- 重启 SSH 服务 -->
# sudo service sshd restart
如果sshd启动成功,查询systemctl status sshd.service
结果如下
2. 安装git server
使用yum 安装
<!-- 安装 Git -->
# yum install git
2.1 建立git 账户
在Centos7里创建一个新账户用于专门管理git操作,命令如下:
<!-- 建立账户 -->
<!--格式:useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-d 主文件夹绝对路径] [-s shell] -m 用户账户名 -->
# useradd -d /home/git -s /bin/bash git
<!-- 设置账户密码 -->
# passwd git
该账户不应被用于远程登陆,使用如下指令修改配置文件的对应项。
<!-- 打开配置文件 -->
# vi /etc/passwd
原始值 | 修改后的值 |
---|---|
git:x :1000:1000::/home_local/git:/bin/bash | git: x:1000:1000::/home_local/git:/bin/git-shell |
2.3. 开启 SSH RSA 验证
由于关闭了 Git 账户的远程登陆,因此需要启动 SSH 的 RSA 验证以确保可以使用该种方式连接到 Git Server。修改下列配置文件的选项行为对应值。
原始值 | 修改后值 |
---|---|
#RSAAuthentication yes | RSAAuthentication yes |
#PubkeyAuthentication yes | PubkeyAuthentication yes |
重启 SSH 服务。# systemctl restart sshd.service
2.4. 创建 SSH Key
<!-- 创建 SSH Key [your infomation] 通常为邮箱 -->
# ssh-keygen -t rsa -C "[your infomation]"
2.5. 配置 Git Server
回到服务端,完成最后的配置。进入到 “/home/git” 目录下,使用如下指令创建一个空仓库, “.ssh” 目录以及 “authorized_keys” 文件。
<!-- 进入目录 -->
# cd /home/git
<!-- 创建 Git 仓库 [name] 为仓库名 -->
# git init --bare [name].git
<!-- 创建目录 -->
# mkdir .ssh
<!-- 进入目录 -->
# cd .ssh
<!-- 创建文件 -->
# touch authorized_keys
将/home/git
文件和目录下所有文件权限转为 git 账户。
# chown -R git.git /home/git
打开客户端中的 “id_rsa.pub” 文件,将该文件中的全部内容拷贝至服务端中的 “authorized_keys” 文件中。对于 Windows 10 x64 系统,可以使用 SSH 客户端远程连接 CentOS 7 服务端进行文件修改,本文使用 MobaXterm。对于其他系统或者其他拷贝方式,可自行决定。下列指令可查看 CentOS 7 的 IP 信息。
2.6 验证 Git Server
回到客户端,在 Git Bash 中使用如下指令从服务端中拷贝创建的 Git 仓库。
<!-- 拷贝仓库 [server ip] 为服务端 IP -->
# git clone git@[server ip]:/home/git/[name].git