Cent OS 搭建git服务器及配置SSH访问-详细步骤

最近开始折腾linux(先借的哈哈,那个前端开发还没个后台好基友呢)
也算数初步入门了吧,刚好公司git需要迁移于是就有了这篇文章。
虽然遇到问题都解决了,但是也在反思,仅仅明白命令的作用还不足。还是要对系统环境有一个广度的认知才行,在解决问题时才能有正确的方向。

一、Cent OS git 安装 -都是基于root权限

  • 1.下载linux对应的压缩安装包,上传至服务器目录(你也可以直接使用wget工具下载,但服务器一般下载都比较慢)
    下载地址:https://www.kernel.org/pub/software/scm/git/
    我这里下载的是:git-2.9.0.tar.gz

  • 2.解压
    tar xzf git-2.9.0.tar.gz

  • 3.设置安装路径前缀,安装路径/usr/local/SoftWareName

cd git-2.9.0
configure --prefix=/usr/local/git -with-tcltk 

通常首次安装git,configure可能都没有配执行路径,换成这样即可:
./configure --prefix=/usr/local/git -with-tcltk

  • 4 安装
    还是在 解压目录git-2.9.0
    先检查是否缺少必要依赖
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-develperl-devel
//make all 可安装说明文档
  make 
  make install

运行 git --version 查看是否成功
如果是首次安装就还需将git 命令执行路径添加到 PATH

vim /etc/bashrc
//末尾加入如下命令
export PATH=/usr/local/git/bin:$PATH保存退出
//刷新配置
source /etc/bashrc
//重新运行 git --version
[root@xx git-2.9.0]# git --version
git version 2.9.0

到这里安装就结束了。

二、服务器创建git远程仓库

1.创建一个裸仓
git init --bare
为什么使用--bare?

2.创建项目仓库(work tree 目录)

cd myProject.git/
git init

完成项目仓库初始化。此时已经可以访问这个仓库了。
3.配置远程仓库地址
git remote add origin git@ip.xx.x:/xx/myProject.git
查看是否添加成功
git remote -v

这里可以随便添加个文件,比如加个README.md

4.从远程仓库clone 到本地。
git clone git@ip.xx.x:/xx/myProject.git

5.测试提交可能会遇到需要设置denyCurrentBranch 的错误提示
到服务器端.修改work tree 下 .git/config 文件。末尾添加

[receive]
denyCurrentBranch = ignore

或者直接执行
git config receive.denyCurrentBranch ignore

保存重新提交。
6.服务器查看提交的文件
刷新提交
git reset –hard
运行完毕,可看到见修改内容就大功告成

三、配置ssh 访问方式

关于git在linux上的用户管理方式,这里就省略了。
我上面使用的用户叫 git ,所以这里默认就在git 根目录操作

1.切换至root 用户

su root
cd /etc/ssh
vim sshd_config

解开下面三行注释

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存重启sshd服务
/etc/rc.d/init.d/sshd restart
上面看到 身份认证文件要放到.ssh目录下
2.创建身份认证文件并添加公钥
进入git 用户根目录创建 .ssh 文件夹及 authorized_keys文件

cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys
vim authorized_keys
//将公钥添加至文件末尾 保存退出

3.使用root 用户 开启ssh 访问,并拒绝使用ssh 直接登陆进服务器
vim /etc/passwd
找到
git:x:502:504::/home/git:/bin/git-shell
修改为git 软件安装目录下的shell命令路径
git:x:502:504::/home/git:/usr/local/git/bin/git-shell
重新在客户端commit push 就不用输入密码了。

END

    原文作者:_RANGO
    原文地址: https://www.jianshu.com/p/b9b4cb3425d2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞