有些代码不想传到开原仓库github或者码云,那么本人搭建git服务器将会是一个不错的抉择。
筹备工作
首先须要有一台Linux云服务器,举荐Ubuntu,装置git非常简略。并且须要有一个具备sudo权限的账号,个别是root
装置Git
sudo apt-get install git
创立Git用户
用来运行git服务
sudo adduser git
创立证书免密登陆
创立本机的公钥
ssh-keygen -t rsa
而后一路回车到底,就会在~/.ssh/
目录下看到两个新创建的文件,id_rsa.pub
和id_rsa
,一个是公钥一个是私钥,这里关上公钥id_rsa_pub
,复制外面的内容前面会用到。
用新创建的用户登录SSH服务器,并关上服务器上的目录/home/git
,这里是新创建的用户根目录,个别状况下还没有创立.ssh
目录的,须要运行ssh-keygen -t rsa
命令来创立,最好不要手动创立,不然还要更改目录权限。创立好.ssh
目录之后,cd
进去,而后touch authorized_keys
来创立authorized_keys
文件,这个文件是用来记录客户端的公钥,以实现免密登陆。将之前在客户端创立的公钥内容复制到authorized_keys
中,而后保留退出。
初始化Git仓库以做测试
假如在/home/git
目录下
git init --bare demo.git
会呈现一个demo.git
目录,而后更改目录权限和所有者
sudo chown -R git:git demo.git
克隆Git仓库到本地
git clone git@xx.xx.xx:/home/git/demo.git
这时候按理说是不应该输出明码,间接克隆胜利的,如果没有胜利,阐明服务器上的/home/git/.ssh
和/home/git/.ssh/authorized_keys
权限不对。
- .ssh目录的权限必须是700
- .ssh/authorized_keys文件权限必须是600
更改权限sudo chmod -R 700 /home/git/.ssh
,sudo chmod 600 /home/git/.ssh/authorized_keys
而后能够提交一下代码,测试一下是否胜利。