服务器上安装git仓库和git本地

 原文来自:    https://blog.csdn.net/li_wen01/article/details/52411543

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

例如:在服务器上gittest文件夹作为仓库,在服务器上test文件夹作为本地.

    服务器系统:linux 7.2

    服务器git版本:git version 1.9.0

    客户端git版本:git version 1.7.9.5

服务端操作:    

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

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

3.创建证书登录:

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

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


4.初始化git仓库

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

su - git
cd /home/git/
mkdir gittest
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。
比如在我服务器中:

[root@redhat git]# which git-shell 
/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 命令来克隆远程仓库了。
root@ubuntu:~# git clone [email protected]:/home/git/gittest
Cloning into 'gittest'...
The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
RSA key fingerprint is 57:81:cc:7c:48:52:4e:a0:f2:16:86:84:ae:d2:32:ee.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.2' (RSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.

结束。

然后将本地的项目git push传到服务器的仓库,最后在服务器上做本地获取 git pull.
--------------------- 
作者:li_wen01 
来源:CSDN 
原文:https://blog.csdn.net/li_wen01/article/details/52411543 
 

猜你喜欢

转载自blog.csdn.net/dashiquan/article/details/83620782