阿里云服务器搭建git服务器

服务器操作系统:CentOS7.4
客户端操作系统:MacOSX 10.13

1.在服务器安装git

git 程序既可以用作客户端,也可以用作服务器。
我以root账号ssh登录

# yum install git

2.创建一个用户组git

建立用户组的目的在于对于这个git服务器,赋予多人访问权限时,可以统一管理。

# groupadd git

3.在用户组git下创建一个用户,名字也为git

# adduser git -g git

这个用户用作一个访问服务器的公共用户。
此命令可能不会当场需要你输入密码,这时可以跳过,不用管它

4.在客户端创建RSA密钥

注意,这一步是在Mac上进行

$ ssh-keygen

输入命令后会出现提示Enter passphrase (empty for no passphrase):这一步和下一步的确定需要直接回车,并且生成~/.ssh/id_rsa私钥和~/.ssh/id_rsa.pub公钥这两个文件。我们把~/.ssh/id_rsa.pub这个文件里的内容全部复制下来,然后进行下一步。

5.在服务器上建立文件保存公钥

注意,这里又回到了服务器,我们还是用root登录

# cd /home/git/
# mkdir .ssh
# chmod 700 .ssh
# touch .ssh/authorized_keys
# chmod 600 .ssh/authorized_keys
# chown -R git:git .ssh  

其中/home/git目录为服务器上用户git的主页目录,上诉操作相当于在/home/git/.ssh/目录下新建一个authorized_keys文件。并把目录.ssh的权限设置为700,authorized_keys文件权限设置为600.
因为git的pull相当于读操作,push相当于写操作,所以需要读写权限。

6.复制客户端公钥内容到服务器authorized_keys文件

这里涉及vim操作,大家可以搜索做法

7.在服务器初始化git仓库

选定一个目录作为Git仓库,假定是/data/gitroot/memo.git:

# cd /data
# mkdir gitroot
# chown git:git gitroot/
# cd gitroot
# git init --bare memo.git
# chown -R git:git memo.git

8.在客户端克隆仓库

$ git clone git@101.200.xxx.xxx:/data/gitroot/memo.git

其中101.200.xxx.xxx为git服务器ip,需要将其修改为你自己的git服务器ip。
如果此时还需要输入密码,那么请参考

可能需要的额外的设置

或者在客户端使用命令进行调试

ssh -vvT git@gihubserverip

本人就是在生成公钥时,输入了自己的passphrase(密码),然后git clone和git push时都需要输入密码

posted @ 2018-03-04 09:15  蓝萧  阅读(3844)  评论(0编辑  收藏  举报