前言
本文原来维护在 segmentfault 上,由于本周时间不是很充足,因此将原来的文章维护至本博客,之后时间充裕的时候再补充一篇。本文简单介绍一下如何在自己服务器上搭建死人的 git 仓库,毕竟近期的 github 也不算是十分安全~还是有必要了解一下私人 git 仓库的搭建之法的。
客户端配置
安装 git
官方下载 git 安装包,根据提示安装即可,Git 官网。
安装完成后配置个人的 git 信息,在 git bash 中输入以下信息。
1 | git config --global user.name "your name" |
创建 sshkey
在 bash 中输入以下信息,看有没有配置 ssh
1 | cd ~/.ssh |
下面为创建 ssh-key 的方法
1 | # 默认生成 SSH-2 的 RSA 密钥,密码部分直接回车即可 |
远程配置(ubuntu 16)
创建 git 用户
1 | # 检验用户是否已经存在 |
注: 非 root 权限需要加 sudo
配置 Git
安装/更新 git
1 | apt-get install git |
配置仓库
1 | # 选取合适的位置,创建 xxx.git 文件夹(必须 .git 结尾) |
注: 更改用户拥有者这一步,如果你是在 root 用户下建立文件的话需要更改,如果先切换成 git 用户了,那么就不需要改,可用 ll 或 ll -a 命令查看
配置认证用户信息
1 | # 配置 ssh_config |
在此仓库就配完了。
注: 很多博客没有 %h 这个东西,查了下 askubuntu ,这个貌似就是指 home
服务器自动部署配置
添加 hook
1 | // 进入所创仓库的 hooks 文件目录 |
注: yourFileAddress 的拥有者应该是 git 用户
扩展知识
如何测试账户的连接情况
1 | ssh -T user@host |
其中:
user:远程分支的通过 adduser 创建的用户,一般创建 git 用户管理 git 相关内容
host:服务器地址,可以直接用 ip 地址,有域名的可以写域名
例:ssh -T git@github.com
关于关闭 bash 登陆系统问题。
此主要配置禁止通过 git 来登陆服务器,为了服务器安全性建议配置一下:
1 | sudo vi /etc/passwd |
注:如果出现错误,请自行查找该系统下的 git-shell 在哪个文件路径,默认应该是 /usr/bin 内
关于 600 和 700 权限问题。
语法:
1 | chmod abc file |
其中 a, b, c 各为一个数字,分别表示 User, Group 及 Other 的权限。因为:
读取 写入 执行
r = 4, w = 2, x = 1
故而:
rwx : 4 + 2 + 1 => 7
rw : 4 + 2 => 6
我们这边仅弄 User 权限,因此略。