搭建Git服务器需要准备一台运行Linux的机器, 我用的Centos

2创建一个git用户,用来运行git服务:

sudo adduser git

3 用git用户登录,创建ssh key 文件夹

$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

3 将本地的ssh pub key 上传到git server上, 比如 /tmp路径下,本地ssh pub key 在 .ssh/id_rsa.pub

scp .ssh/id_rsa.pub root@gitserver:/tmp/

4 追加id_rsa.pub 到服务器authorized_keys 里 (git用户下)

cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

5 创建Git仓库

cd /opt
mkdir git
初始化仓库
sudo git init --bare sample.git
将git仓库owner改为git用户
sudo chown -R git:git sample.git 

6 本地克隆仓库

git clone git@gitserver:/opt/git/sample.git

7 然后就可以利用source tree 等工具提交代码了。

8 如果服务器ssh端口号不是默认的22,比如是8765,如果用git协议clone,则需要修改本地~/.ssh/config 文件

host $xxx

hostname $xxx

port 8765

(替换$xxx 为ip地址或者域名)

如果用ssh协议clone,则 ssh://$xxx:8675/opt/git/sample.git

如果报错:

ssh hostname returns “Bad owner or permissions on ~/.ssh/config”

那么

chmod 600 ~/.ssh/config

9 作为一个额外的防范措施,你可以用 Git 自带的 git-shell 工具限制 git 用户的活动范围。只要把它设为 git 用户登入的 shell,那么该用户就无法使用普通的 bash 或者 csh 什么的 shell 程序。编辑/etc/passwd 文件:

$ sudo vim /etc/passwd

在文件末尾,你应该能找到类似这样的行:

git:x:1000:1000::/home/git:/bin/sh

把 bin/sh 改为 /usr/bin/git-shell (或者用 which git-shell 查看它的实际安装路径)。该行修改后的样子如下:

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

现在 git 用户只能用 SSH 连接来推送和获取 Git 仓库,而不能直接使用主机 shell。尝试普通 SSH 登录的话,会看到下面这样的拒绝信息:

$ ssh git@gitserver
fatal: What do you think I am? A shell?
Connection to gitserver closed.

推荐阅读:

https://git-scm.com/book/it/v2/Git-on-the-Server-Setting-Up-the-Server

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

Linux 安装Git Server相关推荐

  1. linux安装git并配置GitHub账号,本地与GitHub之间进行文件的上传(push)、下载(克隆)、更新

    0310 Linux和github交互 参考链接: 安装git并配置GitHub账号: 本地与GitHub之间进行文件的上传(push).下载(克隆).更新 上传 下载 更新: 补充:GitHub的原 ...

  2. linux安装git安装

    目录 Linux安装 Git安装 创建版本库,浅试一下 许久未更了,今年的3月份去实习了,嘿嘿嘿. 实习回来写了几篇,发现CSDN不太一样了,有种"限流"的感觉.

  3. linux安装git

    转载自:https://www.csdn.net/tags/NtDacgwsMjkyNi1ibG9n.html linux下安装git可以通过好几种方法实现安装,下面由学习啦小编为大家整理了linux ...

  4. Linux安装Git详细步骤

    Linux安装Git 安装编译 Git 所需要的依赖: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-deve ...

  5. Linux安装git的命令

    安装git的前提条件是先安装yum. 1.Linux安装git的命令如下: yum -y install git 安装完成: 2.查看Git是否安装完成以及查看其版本号: git --version ...

  6. Linux安装Git(一条命令即可)

    Linux安装Git(一条命令即可) yum -y install git

  7. centos5.8上安装git server

    Git 可以使用四种主要的协议来传输数据:SSH 协议,Git 协议和 HTTP 协议.下面将一一介绍如何在服务端和客户端搭建和使用git的这些协议. 基础环境: git server:172.16. ...

  8. linux安装Git依赖的包出错,技术|Linux有问必答:如何在Linux上安装Git

    问题: 我尝试从一个Git公共仓库克隆项目,但出现了这样的错误提示:"git: command not found". 请问我该如何在某某发行版上安装Git? Git是一个流行的开 ...

  9. linux 安装git失败,Linux运维知识之linux下安装git常见故障整理

    本文主要向大家介绍了Linux运维知识之linux下安装git常见故障整理,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. FAQ1: Permission denied (pu ...

最新文章

  1. 多选框实现单选效果,并且把中文值赋值到特定输入框
  2. sql array 数组基本用法(四)
  3. 程序员修炼之路:你该知道的 7 个必经阶段
  4. PAT 甲级 1027 Colors in Mars
  5. 在nodejs中操作mongodb
  6. jquery中方法扩展 ($.fn $.extend) 学习笔记
  7. 电脑获取服务器IP,ping nslookup获取心知天气的IP地址,windows cmd命令行进行DNS域名解析解析
  8. iOS Accessibility指南
  9. 字符串低位优先排序真的只能排序字符串相同的字符么?
  10. endnote中科大版区别_EndNote X7
  11. SiamFC复现结果
  12. ca锁登录显示服务器验签失败,网上报名CA登录失败解决办法
  13. wifi信道12为啥没人用_关于WIFI信道的问题?
  14. unilx安装mysql_内容更新 · web-liuyang/uni-app-tools@72f7fd7 · GitHub
  15. word流程图两条线的端点连接_word 2013流程图连线 word流程图连线
  16. Science 李伟/周琪团队联合开发染色体编辑新技术,创建全新核型小鼠,哺乳动物染色体尺度基因组重塑元年...
  17. keras-segmentation-master代码详解
  18. 博士补贴75万、本硕补贴45万!小县城重金揽才,开启硕博抢人大战!
  19. JpGrap引入以及中文乱码问题
  20. 点击按钮显示文字,再次点击隐藏文字

热门文章

  1. Libevent库的简介
  2. 6.1.4 6.1.5完美越狱
  3. C++小游戏——歹徒逃脱
  4. Web项目之人力资源管理系统
  5. MySQL登录时出现 Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解决办法
  6. 应用性能监控管理工具
  7. 手势控制鼠标进行操作的方法和源码
  8. c语言给定n个矩形及其长和宽,c1科目一模拟考试2021最新版练习题
  9. 2021.2.10记一次极路由3HC5861无ROOT刷机登录ssh的经历
  10. 结合OD和《植物大战僵尸》,实现随意过关