Centos搭建Git环境
安装Git
1 2 3
| git --version // 如无,则安装 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel yum install -y git
|
创建Git用户
1 2
| useradd git passwd git // 设置密码
|
搭建Git仓库地址
- 创建/指定一个目录作为git的拉取路径
1 2 3 4
| cd /home/git mkdir ./repo // 仓库地址 cd ./repo git init --bare share.git //创建一个干净的仓库
|
- 创建/指定一个目录作为代码的实际保存路径
1 2
| cd /home/git mkdir -p ./project/share //创建代码的实际保存路径
|
- 将代码路径与拉取路径做绑定
1 2 3 4 5
| cd /home/git/repo/share.git/hooks vi post-receive // 创建 hook 钩子函数,输入了内容如下:
#!/bin/sh git --work-tree=/home/git/project/share --git-dir=/home/git/repo/share.git checkout -f
|
- 添加完毕后修改权限
1 2 3
| chmod +x post-receive exit // 退出到 root 登录 chown -R git:git /home/git/repo/share.git // 添加权限
|
设置SSH访问
本地生成RSA 秘钥
- 先在用户主目录${USER.HOME}$下,看看有没有
.ssh
目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开cmd,创建SSH Key:
1
| ssh-keygen -t rsa -C "youremail@example.com" //注意是自己的邮箱地址
|
- 把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可;
- 顺利生成id_rsa和id_rsa.pub两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,需要上传到服务器;
Git服务器完成绑定
- 上传id_rsa.pub到服务器;
- 在
/home/git
下创建.ssh
目录,然后创建authorized_keys
文件,并将刚生成的公钥导入进去。
1 2 3 4 5
| mkdir /home/git/.ssh/ cp id_rsa.pub authorized_keys
# 如果已经存在authorized_keys文件,则执行命令追加公钥内容到authorized_keys cat id_rsa.pub >> /home/dxpt/.ssh/authorized_keys
|
- 设置权限
1 2
| # 公钥文件的权限必须是644 chmod 644 authorized_keys
|
客户端ssh验证
注意事项:权限如果配置完对等信任公钥,仍提示输入密码或者访问拒绝,则需要查看服务器的目录权限是否正确,home目录权限755,.ssh目录权限是755,authorized_keys文件权限是644
服务器禁用git用户的shell登陆
- 出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
1
| git:x:1000:1000:,,,:/home/git:/bin/bash // 数字可能不同
|
- 最后一个冒号后改为:
1
| git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
|
- 这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
本文标题:Linux下搭建Git服务器
文章作者:foreverSFJ
发布时间:2021-08-21 22:47:32
最后更新:2021-08-21 22:47:32
原始链接:OS/Linux/Linux搭建Git服务器.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!