码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 下 git 安装 远程服务搭建

时间:2015-11-09 11:06:23      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:



系统环境:

  • CentOS 6.6 x86_64
  • 服务端 IP:192.168.2.45

本文针对 git 的 SSH 协议,搭建远程服务。与创建一个普通用户,通过 SSH 协议授权访问的操作思路完全一致, 只不过服务端与客户端在操作项目时都使用 git 而已,服务搭建十分简单。当然更多更详细的配置还是要看 git 手册。

安装 git

# yum install git

添加 git 用户

用户名可以随便起,我这里创建一个以 git 为名称的用户:

# adduser git

禁止 git 用户登录,修改 /etc/passwd 文件,将:

git:x:501:501::/home/git:/bin/bash

改为:

git:x:501:501::/home/git:/usr/bin/git-shell

如果你创建的是其他的用户名,修改对应用户名的登录方式为 /usr/bin/git-shell。


Git SSH Key 生成步骤

 一 、

设置Git的user name和email:

$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"


二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:

$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
按3个回车,密码为空。


Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………


最后得到了两个文件:id_rsa和id_rsa.pub




授权访问

免密码访问:收集客户端的 id_rsa.pub 公钥,追加到 /home/git/.ssh/authorized_keys:

# cat /path/to/some_client/id_rsa.pub >> /home/git/.ssh/authorized_keys

如果客户端有 root 权限或有 /home/git 目录的写权限可以使用:

# ssh user@server ‘mkdir -p /home/git/.ssh && cat >> /home/git/.ssh/authorized_keys‘ < ~/.ssh/id_rsa.pub

使用密码访问

# passwd git 输入你想要设置的密码

如果你创建的是其他的用户名,修改对应用户名的密码。

创建 git 项目

假定我们将 git 项目统一放在 /opt/gitproj 目录下:

# mkdir -p /opt/gitproj

创建项目:

# cd /opt/gitproj/ # git init --bare sample.git

修改权限:

# chown -R git:git sample.git

我们先在本地克隆一份,后面在客户端提交文件时,可以在此处拉取验证:

# cd /tmp/ # git clone /opt/gitproj/sample.git/ Initialized empty Git repository in /tmp/sample/.git/ warning: You appear to have cloned an empty repository.

如果你只有一台服务器,git 服务和 web 服务都在上面,那么你可以考虑选择这种方法。

验证

客户端

$ git clone git@192.168.2.45:/opt/gitproj/sample.git Cloning into ‘sample‘... warning: You appear to have cloned an empty repository. Checking connectivity... done. $ cd sample/ $ echo ‘first commit‘ > 1.txt $ git add 1.txt $ git commit -am ‘update‘ $ git push Counting objects: 3, done. Writing objects: 100% (3/3), 220 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.2.45:/opt/gitproj/sample.git * [new branch] master -> master

如果出现 fatal: The remote end hung up unexpectedly 错误,使用 git push origin master 推送。

转到 服务端

现在我们到 /tmp/sample/ 目录下拉取最新提交的文件,验证一下:

# cd /tmp/sample/ # git pull remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From /opt/gitproj/sample * [new branch] master -> origin/master # cat 1.txt first commit

到此我们的 git 服务就搭建完毕了,很简单那。

参考

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000 http://git-scm.com/book/zh/v1/服务器上的-Git-协议 http://git-scm.com/book/zh/v1/服务器上的-Git-架设服务器 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
转载请注明出处。 本文地址:http://blog.aboutc.net/linux/71/git-remote-services-to-build-under-linux



Linux 下 git 安装 远程服务搭建

标签:

原文地址:http://my.oschina.net/u/144160/blog/527859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!