CentOS安装Git服务器-踩坑日记
CentOS安装Git服务器
git安装
- 安装git服务器端
yum install -y git
- 安装完后,查看Git版本
git --version
- 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码;
新增git_group用户组:groupadd git_group
新增git用户并分配至git_group用户组:adduser git -g git_group
为git用户设置密码:passwd git
注意:需要连续输入两次密码
- 服务器端创建 git 仓库
新建仓库目录:mkdir -p /home/git/base.git
初始化git仓库:git init --bare /home/git/base.git
修改目录拥有者:chown -R git:git_group /home/git/base.git
客户端git安装
- Git for Windows客户端下载地址
安装教程:https://blog.youkuaiyun.com/mukes/article/details/115693833
安装完之后,可以使用 Git Bash 作为命令行客户端。 - tortoisegit及汉化包下载
https://tortoisegit.org/download/
- 客户端 clone 远程仓库
先在本地Windows系统上创建一个存放git项目的文件夹,然后进入该目录,启动Git Bash
clone远程仓库
git clone git@192.168.1.100:/home/git/base.git
#IP地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径
输入密码
当第一次连接到目标 Git 服务器时会得到一个提示,输入 yes 即可
客户端创建 SSH 公钥和私钥
-
Git Bash
界面输入如下命令创建密钥
ssh-keygen -t rsa -C “邮箱账号@qq.com”
命令执行完成后,在本机C:\Users\Administrator\.ssh
目录下,会出现两个文件 id_rsa 和 id_rsa.pub
id_rsa_git
是私钥
id_rsa_git.pub
是公钥弹出提示直接回车
-
服务器端修改配置文件
进入 /etc/ssh 目录,root用户下编辑 sshd_config
vi /etc/ssh/sshd_config
按如下设置配置,如果注释掉了,则去掉前面的#号
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并重启 sshd 服务:
service sshd restart
#重启sshd服务 -
在 /home/git/ 下创建目录 .ssh
mkdir /home/git/.ssh
修改目录所有者:chown -R git:git_group /home/git/.ssh
-
将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件
git@192.168.1.100 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
执行报错,注意检查
/etc/passwd
文件内git用户是否已修改为git-shell,改回bash即可
-
修改 .ssh 目录的权限为 700
chmod 700 /home/git/.ssh
-
修改 .ssh/authorized_keys 文件的权限为 600
chmod 600 /home/git/.ssh/authorized_keys
-
clone远程仓库,不用输入密码即可
禁止 git 用户 ssh 登录服务器
- 编辑
/etc/passwd
文件
找到git用户,修改bash为git-shell
此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统