搭建本身的git服务器

1、安装gitgit

$ sudo apt-get install git

2、建立一个git用户,用来运行git服务shell

$ sudo adduser git

3、客户端生成密钥安全

Windows:bash

    Git官网(https://git-scm.com/downloads)下载Git for Windows并安装。服务器

    任意位置打开Git Bash,输入如下命令:app

$ ssh-keygen -t rsa -C "您的邮箱地址"

Linux:ssh

$ mkdir .ssh
$ cd .ssh/
$ ssh-keygen -t rsa -C "您的邮箱地址"

4、建立证书登陆:code

    收集全部须要登陆的用户的公钥,就是他们本身的id_rsa.pub文件,把全部公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。server

5、初始化Git仓库:rem

    先选定一个目录做为Git仓库,假定是/git/test.git,在/git目录下输入命令:

$ sudo git init --bare test.git

    Git就会建立一个裸仓库,裸仓库没有工做区,由于服务器上的Git仓库纯粹是为了共享,因此不让用户直接登陆到服务器上去改工做区,而且服务器上的Git仓库一般都以.git结尾。而后,把owner改成git

$ sudo chown -R git:git test.git

6、禁用shell登陆:

    出于安全考虑,第二步建立的git用户不容许登陆shell,这能够经过编辑/etc/passwd文件完成。找到相似下面的一行:

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

    改成:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    这样,git用户能够正常经过ssh使用git,但没法登陆shell,由于咱们为git用户指定的git-shell每次一登陆就自动退出。

7、克隆远程仓库:

    如今,能够经过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/git/test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.

    git是经过ssh来clone代码的,上述命令将去链接ssh默认的22端口。若是改过ssh端口,上述代码会失效。

$ git clone git@server:/git/test.git
Cloning into 'test'...
ssh: connect to host server port 22: Connection refused
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

    当出现这种状况时就应该使用另一条命令来clone代码了:

$ git clone ssh://git@server:port/git/test.git

    Done.

相关文章
相关标签/搜索