基于CentOS7.2搭建Git私人服务器

来源:互联网 发布:unix编程 编辑:程序博客网 时间:2024/05/17 22:22

1. 安装服务器Git

1.1. 更新系统(可忽略)

  • 命令:sudo yum update

1.2. 安装需要的依赖

  • 命令:sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

1.3. 删除系统自带的旧版本Git

  • 命令:yum remove git

1.4. 下载Git并解压缩

1.4.1. 下载git

进入https://www.kernel.org/pub/software/scm/git 查看版本,根据需要选择

  • 命令:cd /opt/git 目录下,下载git文件
  • 命令:wget https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz

1.4.2. 解压缩文件

  • 命令:gunzip git-2.9.3.tar.gz
  • 命令:tar -xvf git-2.9.3.tar

1.5. 编译安装

将其安装在“/opt/git”目录下。

  • 命令:cd /opt/git/git-2.9.3
  • 命令:make prefix=/opt/git all
  • 命令:sudo make prefix=/opt/git install

1.6. 配置环境变量,立即生效 (etc/profile 或 /etc/bashrc)

  • 命令:echo “export PATH=$PATH:/opt/git/bin” >> /etc/bashrc
  • 命令:source /etc/bashrc

2. 安装桌面Git

2.1. 软件下载

默认安装,或根据需要安装即可

  • Git服务端:https://git-scm.com/download/win
    或https://git-for-windows.github.io/
  • SourceTree图形化工具:https://www.sourcetreeapp.com(需要注册)
  • TortoiseGit:https://tortoisegit.org/download/ (类似于TortoiseSVN小乌龟工具)

2.2. 生成public key/private key

安装完成后,打开Git Bash,输入以下命令,生成key备用(id_rsa、id_rsa.pub)

  • ssh-keygen -t rsa -C “用户名”

3. 配置Git远程服务器

远程仓库通常只是一个裸仓库(bare repository) 即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是 Git 的数据。简单地说,裸仓库就是你工作目录中 .git 子目录内的内容。

3.1. SSH打开RAS认证

Git数据交互是基于ssh的,查看是否开启了ssh服务

  • 命令:ps -ef|grep “sshd”

开启之后会显示一些信息。如果你能看到一些sshd相关的进程信息,则说明你已经有这个服务了,否则(或者你想更新的话),使用下面的命令安装openssh。

  • 命令:yum install openssh-server

3.2. 创建Git用户和组

  • 命令:groupadd git (创建Git组)
  • 命令:adduser -m git -g git (创建git用户并指定分组)
  • 命令:passwd git(设置密码,输入一次、确认一次)

Git用户文件夹,查看一下文件夹路径,如果没有就创建,如果存在则忽略

  • 命令:mkdir /home/git
  • 命令:mkdir /home/git/.ssh

3.3. 生成public key/private key(RSA对称加密密钥)

  • 命令:su git (切换到git用户下)(只有生成key是需要在git用户下操作)
  • 命令:ssh-keygen -t rsa (生成密钥,一直下一步就可以)
  • 命令:cat .ssh/id_rsa.pub (查看生成的公钥)
  • 命令:cd /home/git/.ssh
  • 命令:cat id_rsa.pub >> authorized_keys (将id_rsa.pub内容附加到authorized_keys里)
  • 命令:chmod 700 ./.ssh ( 4+2+1 : [读]+[写] + [执行] )
  • 命令:chmod 600 authorized_keys (4+2 : [读]+[写] )

3.4. 将RSA认证打开

  • 命令:vi /etc/ssh/sshd_config (找到以下3项去掉前面注释,前面不可有空格)
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys (与上边指定文件名是相对应的)
  • 命令:sudo service sshd restart (重启ssh服务,使其配置生效)

3.5. 初始化Git仓库

创建git资源库文件夹(也可直接初始化创建git init –bare /home/git/repositories.git文件位置仅供参考)

  • 命令:mkdir /home/git/repositories.git
  • 命令:cd /home/git/repositories.git
  • 命令:git init –bare
  • 命令:cd /home (切换到home路径下)
  • 命令:chown -R git:git git (将home下git用户文件夹下所有文件,授予git用户git组操作权限)
  • 命令:cd git
  • 命令:chmod 700 ./repositories.git (4+2+1 : [读]+[写] + [执行])

3.6. 配置authorized_keys

将2.2中生成的id_rsa.pub(公钥),配置到git用户文件夹下的authorized_keys
copy windos下 id_rsa.pub中内容,粘贴到authorized_keys中(每个为一行,不可有换行符)

  • 参考命令:vi /home/git/.ssh/authorized_keys (编辑文件,粘贴并保存)

3.7. 禁止sell登录(暂不采用,设置后无法连接)

出于安全考虑,创建的git用户不允许登录shell,这可以通过终端编辑/etc/passwd文件完成。

  • 命令:vi /etc/passwd 找到类似下面的一行:
    • 原:git:x:1001:1001:,,,:/home/git:/bin/bash
    • 改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

4. 与远程仓库交互

4.1 配置密钥

打开SourceTree软件,点击工具》选项, 配置私钥

  • SSH密钥:选择RSA生成的id_rsa(私钥)
  • SSH客户端:选择OpenSSH

4.2 克隆仓库

  • 请求url:git@192.168.179.133:/home/git/repositories.git
  • 目标路径:自行选择

参考文献

Git 白皮书 :https://git-scm.com/book/zh/v2

0 0
原创粉丝点击