GitHub(二)之git服务器搭建

    git服务器搭建,本来是一件简单的事情,但是因为网上的很多教程都不详细,造成的后果就是搭建出来的服务器很多的权限的问题,于是折腾了很久,简单记录一下。

测试环境:

    服务器系统:redhat enterprise linux 6.5

    服务器git版本:git version 1.9.0

    服务器IP:192.168.0.2

    客户端系统:Ubuntu 12.04

    客户端git版本:git version 1.7.9.5

服务端操作:    

1.git 安装,不同系统有不同的安装方式,Google一下就有了。


2.创建一个git 用户,不需要为这个用户创建密码,用来运行git服务。


3.创建证书登录:

刚创建的git用户它是它是没有~/.ssh/~/.ssh/authorized_keys文件的 ,因此这里需要手动创建,这里为了避免权限的问题 ,这里的文件创建全部使用git用户处理


    
    
  1. adduser git
  2. su - git
  3. mkdir .ssh
  4. chmod 700 .ssh
  5. touch ~/.ssh/authorized_keys
  6. chmod 644 ~/.ssh/authorized_keys
  7. vim ~/.ssh/authorized_keys
把公钥复制到 ~/.ssh/authorized_keys这里需要注意:切换用户的时候,su - git 中间的 -  不能省略,不然后面可能会出现没有权限创建文件夹ssh。


4.初始化git仓库

为了避免权限的问题,下面的操作请使用开始创建的git用户操作。先选定一个目录作为Git仓库


    
    
  1. su - git
  2. cd /home/git/
  3. mkdir gittest
  4. git init --bare gittest


5.禁用shell登录

在网络上的很多教程都是通过编辑/etc/passwd文件来完成,

git:x:1001:1001:,,,:/home/git:/bin/bash
    
    
改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    
    
其实这里有一个坑,应该先使用which git-shell命令获得git-shell 的安装路径,在替换掉/bin/bash。

比如在我服务器中:


    
    
  1. [root@redhat git] # which git-shell
  2. /usr/local/bin/git-shell
那么上面的 /etc/passwd文件就应该修改为:

git:x:1001:1001:,,,:/home/git:/usr/local/bin/git-shell
    
    
到这里服务器端的设置就结束


客户端操作

1.安装git

2.生成 id_rsa.pub文件

$ ssh-keygen -t rsa
    
    
一路回车,不需要输入任何的密码,将生成的id_rsa.pub文件里面的内容拷贝到服务端的authorized_keys 文件。这样就可以通过git clone 命令来克隆远程仓库了。


    
    
  1. root@ubuntu:~ # git clone [email protected]:/home/git/gittest
  2. Cloning into 'gittest'...
  3. The authenticity of host '192.168.0.2 (192.168.0.2)' can 't be established.
  4. RSA key fingerprint is 57:81:cc:7c:48:52:4e:a0:f2:16:86:84:ae:d2:32:ee.
  5. Are you sure you want to continue connecting (yes/no)? yes
  6. Warning: Permanently added '192.168.0.2' (RSA) to the list of known hosts.
  7. warning: You appear to have cloned an empty repository.

结束。





            </div>

    git服务器搭建,本来是一件简单的事情,但是因为网上的很多教程都不详细,造成的后果就是搭建出来的服务器很多的权限的问题,于是折腾了很久,简单记录一下。

测试环境:

    服务器系统:redhat enterprise linux 6.5

    服务器git版本:git version 1.9.0

    服务器IP:192.168.0.2

    客户端系统:Ubuntu 12.04

    客户端git版本:git version 1.7.9.5

服务端操作:    

1.git 安装,不同系统有不同的安装方式,Google一下就有了。


2.创建一个git 用户,不需要为这个用户创建密码,用来运行git服务。


3.创建证书登录:

刚创建的git用户它是它是没有~/.ssh/~/.ssh/authorized_keys文件的 ,因此这里需要手动创建,这里为了避免权限的问题 ,这里的文件创建全部使用git用户处理


  
  
  1. adduser git
  2. su - git
  3. mkdir .ssh
  4. chmod 700 .ssh
  5. touch ~/.ssh/authorized_keys
  6. chmod 644 ~/.ssh/authorized_keys
  7. vim ~/.ssh/authorized_keys
把公钥复制到 ~/.ssh/authorized_keys这里需要注意:切换用户的时候,su - git 中间的 -  不能省略,不然后面可能会出现没有权限创建文件夹ssh。


4.初始化git仓库

为了避免权限的问题,下面的操作请使用开始创建的git用户操作。先选定一个目录作为Git仓库


  
  
  1. su - git
  2. cd /home/git/
  3. mkdir gittest
  4. git init --bare gittest


5.禁用shell登录

在网络上的很多教程都是通过编辑/etc/passwd文件来完成,

git:x:1001:1001:,,,:/home/git:/bin/bash
  
  
改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
  
  
其实这里有一个坑,应该先使用which git-shell命令获得git-shell 的安装路径,在替换掉/bin/bash。

比如在我服务器中:


  
  
  1. [root@redhat git] # which git-shell
  2. /usr/local/bin/git-shell
那么上面的 /etc/passwd文件就应该修改为:

git:x:1001:1001:,,,:/home/git:/usr/local/bin/git-shell
  
  
到这里服务器端的设置就结束


客户端操作

1.安装git

2.生成 id_rsa.pub文件

$ ssh-keygen -t rsa
  
  
一路回车,不需要输入任何的密码,将生成的id_rsa.pub文件里面的内容拷贝到服务端的authorized_keys 文件。这样就可以通过git clone 命令来克隆远程仓库了。


  
  
  1. root@ubuntu:~ # git clone [email protected]:/home/git/gittest
  2. Cloning into 'gittest'...
  3. The authenticity of host '192.168.0.2 (192.168.0.2)' can 't be established.
  4. RSA key fingerprint is 57:81:cc:7c:48:52:4e:a0:f2:16:86:84:ae:d2:32:ee.
  5. Are you sure you want to continue connecting (yes/no)? yes
  6. Warning: Permanently added '192.168.0.2' (RSA) to the list of known hosts.
  7. warning: You appear to have cloned an empty repository.

结束。





            </div>

猜你喜欢

转载自blog.csdn.net/qq_38317509/article/details/81317711
今日推荐