阿里云服务器搭建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时都需要输入密码