最新消息:

用vps搭建私有的git服务器

git 大步 2616浏览 0评论
阿里云闲着,就搭建了git服务器,毕竟android studio使用svn总是遇到问题。

介绍

这篇教程将会告诉你如何搭建一个使用SSH密钥进行认证的git服务器。这篇教程只会包含git的安装和访问的内容,而不会有web界面搭建的相关内容。这里,我们使用“git.dabu.info”这个域名来代表你的vps所使用的域名(或者ip)。我这里描述的情况是本地电脑是windows,服务器是linux的。
许多人主要的关注的是仓库是否有web界面。如果想要web界面,可以使用github,或者 Gitosis, GitList,  Goblet这些应用。

本地安装git

自己去网上下载git for windows,安装。就会有个git bash 和git gui。

创建SSH密钥对

首先,我们需要产生SSH密钥对。 这里我们使用git bash来得到ssh密钥对, (如果你是mac或linux,其实命令也是一样的),但要把邮箱地址替换成你自己的 :
$ ssh-keygen -t rsa -C "dabu@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/AlexY/.ssh/id_rsa):  //设置密钥保存的位置,我们直接回车,使用默认的
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/AlexY/.ssh/id_rsa.
Your public key has been saved in /c/Users/AlexY/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FngDo85ERE4kF4+U8ARSEM4EvbtJDjrTnueTviwiFzg dabu@gmail.com
The key's randomart image is:
+---[RSA 2048]----+
| oB=@*+          |
| +.%.+ +         |
|  + B o +        |
|.o *   . o       |
|=.o o   S        |
|E..    .         |
|+o.. .           |
|o+oo+            |
|.oo==o           |
+----[SHA256]-----+
我强烈建议为key设置密码,因为这样会多一层防护,对你基本也没什么影响。 通过上面的命令,产生的密钥就会在你设置目录中,名字叫id_rsa(私钥) 和id_rsa.pub (公钥)。 

在vps设置Git用户并安装Git

登陆vps,切换到root用户:
su -
添加一个叫git的用户来处理仓库:
groupadd git
adduser git -g git
然后为这个账户设置密码:
passwd git
然后就是装git了:
Centos/Fedora 执行命令:
yum install git
Ubuntu/Debian 执行命令:
apt-get install git

将SSH密钥添加到访问列表(其实就是个ssh免密码登陆)

下面是在vps上进行操作:
切换到git账户:
su git
将刚才产生的 id_rsa.pub 文件上传到git用户的home目录下(/home/git/)。
然后告诉SSH守护进程去接受哪些ssh密钥:
mkdir ~/.ssh && touch ~/.ssh/authorized_keys
下面是windows上的操作:
打开git bash,执行下面的命令,将产生的公钥内容拷贝到vps上的authorized_keys (注意替换命令中的用户名和ip) :
cat .ssh/id_rsa.pub | ssh  git@git.dabu.info "cat >> ~/.ssh/authorized_keys"
然后看看能不能免密码登陆:
ssh  git@git.dabu.info
第一次登陆的时候会让你输入密码,以后再登陆就不需要输入密码了。
=====================================
如果每次登陆都需要密码,则按照如下方法处理:
1.进行ssh登录时,出现:”Agent admitted failure to sign using the key“ .
   执行: $ssh-add
   强行将私钥 加进来。
2.如果无任何错误提示,可以输密码登录,但就是不能无密码登录,在被连接的主机上(如A向B发起ssh连接,则在B上)执行以下几步:
  $chmod o-w ~/
   $chmod 700 ~/.ssh
   $chmod 600 ~/.ssh/authorized_keys
3.如果执行了第2步,还是不能无密码登录,再试试下面几个
  $ps -Af | grep agent
        检查ssh代理是否开启,如果有开启的话,kill掉该代理,然后执行下面,重新打开一个ssh代理,如果没有开启,直接执行下面:
       $ssh-agent
  还是不行的话,执行下面,重启一下ssh服务
       $sudo service sshd restart
4. 执行ssh-add时提示“Could not open a connection to your authenticationh agent”而失败
执行: ssh-agent bash
=======================================

创建远程仓库

在git的home目录中创建创建一个空的仓库,名为my-project.git,并初始化:
git init --bare my-project.git

将本地仓库与远程仓库进行过关联,并push

假设windows上已经有个本地仓库,并且与别名叫origin的远程仓库进行了关联,那么,我们只需要将origin所指向的远程仓库的链接改为我们刚搭建的git服务器:
git remote set-url origin git@git.dabu.info:my-project.git
如果是本地还没有仓库,可以执行下面的命令,并将其与远程仓库进行关联:
git init && git remote add origin  git@git.dabu.info:my-project.git
将本地的仓库内容推送到远程仓库:
git push -u origin master
下面就可以放心的改代码了。

 

来自为知笔记(Wiz)

 

转载请注明:大步's Blog » 用vps搭建私有的git服务器

SiteMap