这里介绍两种方法:
- 手动创建
- gitlab(web方式)
$ ps -ef | grep sshd // 可查看是否安装SSH服务
# 如果没有安装SSH服务,可通过如下命令安装.
$ sudo apt-get install openssh-server openssh-client
centos 戳这里 centos7安装ssh服务
安装git (服务器上)$ sudo apt-get install git
# 老一点的Ubuntu,需要改为
$ sudo apt-get install git-core
添加git用户,并设置密码
$ sudo useradd git -m
$ sudo passwd git
创建证书登录(本地电脑上)
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
如果本机没有公钥,可以通过执行以下命令:
ssh-keygen -t rsa -C "your email address" //即可以当前用户目录.ssh下生成公钥文件.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub git@118.24.153.55 //上传公钥到服务器 这个ip是我的腾讯服务器 请换成你自己的
首次上传公钥会在服务器git用户目录下创建 .ssh/authorized.keys文件.
如果是手动复制公钥,需要自己创建 .ssh/authorized.keys 文件. 注意保证git用户权限.
git:x:1001:1003::/home/git:/bin/sh
修改为:
git:x:1001:1003::/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
初始化仓库,并设置权限.$ sudo mkdir /rep //在根目录新建文件夹
$ cd /rep //进入该文件夹
$ sudo git init --bare project.git //初始化空仓库
$ sudo chown -R git:git project.git //修改文件夹权限
在当前目录下会生成一个project.git目录.
测试仓库(本地电脑)$ git clone git@118.24.153.55:/rep/project.git
$ cd project.git
$ echo "Hello world" >> index.html
$ git add index.html
$ git push
实际过程:
gitlab(web方式)安装官方有安装包下载和官方安装指南. 官方不推荐一键安装包,特别是Bitnami 的一键安装包....虽然Bitnami的安装包确实非常容易安装.
那我们就按照官方的步骤来安装.环境还是我们上面的那台服务器.
- 安装依赖
sudo apt-get install curl ca-certificates postfix
安装到postfix时会跳出选择框,一切默认选择就好了.
- 如果你的网速足够快的话可以按以下方式:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
貌似这个要几个小时,非常慢.那我们直接下载适合自己版本的安装文件.我的服务器是Ubuntu 12.4 64位. ubuntu/precise 下载地址.然后执行:
sudo dpkg -i gitlab-ce_7.13.4-ce.0_amd64.deb
- 配置
修改/etc/gitlab/gitlab.rb 文件external_url项为服务器IP.如:
external_url 'http://118.24.153.55'
然后重新加载配置并启动:
sudo gitlab-ctl reconfigure
这个过程有点长. sudo gitlab-ctl status 可查看是否安装成功.
在浏览器输入服务器IP地址.出现如下.首次登录需要重置密码.
如果新注册一个用户,需要验证邮箱才能登录,可以修改配置文件,配置好邮件服务器.
gitlab文档
Git服务器搭建