所在位置:
- 首页
- 正文
搭建git服务器
如果自己有服务器,用 git 搭建自己的服务器是非常有用的,可以把自己的代码放到自己的服务器上,方便做一些自动化的测试和部署之类的,下面是自己的搭建 git 的一些步骤
系统所需要软件的基本信息
操作系统 :
archlinux
git :
2.8.3
安装 git
$ sudo pacman -S git
添加一个 git 用户
$ sudo useradd git
禁止 git 用户登录 shell
编辑 /etc/passwd 文件,找到下面的内容
git:x:997:997:git daemon user:/:/bin/bash
修改为下面的内容
git:x:500:500:git version control:/home/git:/usr/bin/git-shell
现在 git 用户只能用 ssh 连接来推送和获取 git 仓库,而不能直接使用服务器的 shell。尝试普通 ssh 登录的话,会被拒绝登录。
配置访问权限
在客户端创建公钥
$ ssh-keygen -t rsa -C '邮箱地址'
ssh-keygen 的原理如下
- 假如A机器想用ssh登录B机器,但不想每次输入密码
- 在A机器上执行 ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 idrsa,idrsa.pub或iddsa,iddsa.pub
- 将A机器的 .pub 文件的内容复制到B机器的 .ssh 目录的 authorized_keys 文件
- .ssh 所在目录的所有者是 test,那么 authorized_keys 文件的所有者也是 test
- 从A机器登录B机器,不再需要密码了
复制公钥
把生成 的 idrsa.pub
文件的内容复制到 /home/git/.ssh/authorizedkeys
文件中,并修改所有者为 git
$ sudo chown -R git:git /home/git
$ sudo chmod 755 /home/git
$ sudo chmod 700 /home/git/.ssh
$ sudo chmod 600 /home/git/.ssh/authorized_keys
注意:如果这些权限没有配置好,连接的时候可能会出现 Permission denied (publickey,gssapi-with-mic) 的错误信息或者要 输入密码
修改 ssh 的配置文件 ( 配置文件在 /etc/ssh/
目录下的 sshd_config
文件),把下面几项打开
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启 ssh 服务
$ sudo systemctl restart sshd.service
初始化git仓库
git 仓库可以为任意的目录,但是所有者都最好改为 git
$ cd /home/git
$ sudo git init --bare blog.git
$ sudo chown -R git:git blog.git
克隆远程仓库
第一种方式通过直接克隆,如果更改了 ssh 的端口就不适合
$ git clone git@192.168.1.1:/home/git/blog.git
$ cd blog
$ vim README
$ git commit -am 'init commit'
$ git push origin master
第二种方式通过配置来克隆,ssh 更改的端口可以写到配置文件
在 /home/用户名/.ssh/ 目录如果没有 config 文件,则建一个,内容如下
HOST myserver
HostName 192.168.1.1
User git
Port 22
IdentityFile ~/.ssh/id_rsa
可以用下面的命令进行克隆
$ git clone ssh://git@myserver:/home/git/blog.git
【上一篇】ArchLinux常用软件
【下一篇】搭建vsftpd服务器