git搭建 当你看了很多教程无果的时候,希望本篇文章给你带来帮助
新的Liunx服务器
通过终端登录 ssh root@xx.�xxx.xxx.xx
当第一次登录的时候需要认证一下服务地址,可以正常登录就跳过该步骤 ssh-keygen -R "xx.�xxx.xxx.xx"
安装git
yum install git
yum install vim
创建一个用户名为git 来用于管理git仓库
添加账户adduser git
设置密码 passwd git
将会用于git仓库登录 按照提示设置即可
初始化仓库
找到一个文件夹,也可以单独创建一个文件夹mkdir ios
进入文件夹中 cd ios
接下来初始化仓库 git init --bare Test.git
(不要用git init初始化,否则等推流的时候会提示仓库不是bare初始化的)
权限设置
因为开始设置的git用于只用于管理git仓库,那么就需要把初始化的Test.git 交给git用户
chown -R git:git Test.git
(避免出错在ios文件夹的路径下设置)(-R是遍历目录下的子文件,这样才会把git仓库的权限都转移过去)
证书设置
当完成上述操作时,不能正常的实现推拉流的话,那就需要设置一下证书
首先,再开启一个终端 生成本地的.Pub公钥(不要用Liunx服务的)
ssh-keygen -t rsa
之后一路回车
完成之后cat ~/.ssh/id_rsa.pub
输入本机的公钥
然后在回到服务的终端上Vim 进入 /home/git/.ssh/authorized_keys中把刚才本机的ssh-rsa都粘贴进入
o
进入编辑 ,粘贴之后:wq
保存退出
再重启一下 shhd 认证service sshd restart
这样就完成证书的配置
打开服务的RSA 认证
在/ etc / SSH / sshd_config中找到以下三个
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
把前面的#删掉就相当于取消注释,让其生效,(光标移动到#上快捷键x
)
最后禁止shell 登录
在/etc/passwd 中 找到 :git:x:1001:1001:,,,:/home/git:/bin/bash
改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样做的目的是为了防止使用开始创建的git用户登录服务…剩下的就不多解释了
补充
- 当自己
git clone git@xxx.xx.xx.xxx:/ios/Test.git
是不需要输入密码的,因为你已经在authorized_keys加入了你的.pub公钥,当你把地址给你的队友的时候需要的git用户的密码让其登录,或者让其也生成一份公钥放入authorized_keys中,那样他也不用输入密码登录。 - 当克隆下来仓库时,第一次要remote到远端,作为origin的源点,也是顾名思义。当有了源点之后就可以实现 commit 到远程仓库,否则只是在本地git中提交了,根据配置过程中是这么理解的。