在 Linux 下搭建 Git 服务器

目录

  • ① 安装 Git
  • ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码
  • ③ 服务器端创建 Git 仓库
  • ④ 客户端 clone 远程仓库
  • ⑤ 客户端创建 SSH 公钥和私钥
  • ⑥ 服务器端 Git 打开 RSA 认证
  • ⑦ 将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件
  • ⑧ 客户端再次 clone 远程仓库
  • ⑨ 禁止 git 用户 ssh 登录服务器

正文

环境:
服务器 CentOS6.6 + git(version 1.7.1) 客户端 Windows10 + git(version 2.8.4.windows.1)

回到顶部

① 安装 Git

Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git

服务器端:

#yum install -y git

安装完后,查看 Git 版本

[root@localhost ~]# git --version
git version 1.7.1

客户端:

下载 Git for Windows,地址:https://git-for-windows.github.io/

安装完之后,可以使用 Git Bash 作为命令行客户端。

安装完之后,查看 Git 版本

$ git --version
git version 2.8.4.windows.1

回到顶部

② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

[root@localhost home]# id git
id: git:无此用户
[root@localhost home]# useradd git
[root@localhost home]# passwd git 

回到顶部

③ 服务器端创建 Git 仓库

设置 /home/data/git/gittest.git 为 Git 仓库

然后把 Git 仓库的 owner 修改为 git

[root@localhost home]# mkdir -p data/git/gittest.git
[root@localhost home]# git init --bare data/git/gittest.git
Initialized empty Git repository in /home/data/git/gittest.git/
[root@localhost home]# cd data/git/
[root@localhost git]# chown -R git:git gittest.git/

回到顶部

④ 客户端 clone 远程仓库

进入 Git Bash 命令行客户端,创建项目地址(设置在 d:/wamp64/www/gittest_gitbash)并进入:

dee@Lenovo-PC MINGW64 /d
$ cd wamp64/wwwdee@Lenovo-PC MINGW64 /d/wamp64/www
$ mkdir gittest_gitbashdee@Lenovo-PC MINGW64 /d/wamp64/www
$ cd gittest_gitbashdee@Lenovo-PC MINGW64 /d/wamp64/www/gittest_gitbash
$

然后从 Linux Git 服务器上 clone 项目:

$ git clone git@192.168.56.101:/home/data/gittest.git

如果SSH用的不是默认的22端口,则需要使用以下的命令(假设SSH端口号是7700):

$ git clone ssh://git@192.168.56.101:7700/home/data/gittest.git

  

当第一次连接到目标 Git 服务器时会得到一个提示:

The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ. Are you sure you want to continue connecting (yes/no)? 

选择 yes:

Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.

此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。

后面提示要输入密码,可以采用 SSH 公钥来进行验证。

回到顶部

⑤ 客户端创建 SSH 公钥和私钥

$ ssh-keygen -t rsa -C "472323087@qq.com"

此时 C:\Users\用户名\.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub

id_rsa 是私钥

id_rsa.pub 是公钥

回到顶部

⑥ 服务器端 Git 打开 RSA 认证

进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并重启 sshd 服务:

[root@localhost ssh]# /etc/rc.d/init.d/sshd restart

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录 .ssh

[root@localhost git]# pwd
/home/git [root@localhost git]# mkdir .ssh [root@localhost git]# ls -a  . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh

然后把 .ssh 文件夹的 owner 修改为 git

[root@localhost git]# chown -R git:git .ssh
[root@localhost git]# ll -a
总用量 32
drwx------. 5 git  git  4096 8月 28 20:04 . drwxr-xr-x. 8 root root 4096 8月 28 19:32 .. -rw-r--r--. 1 git git 18 10月 16 2014 .bash_logout -rw-r--r--. 1 git git 176 10月 16 2014 .bash_profile -rw-r--r--. 1 git git 124 10月 16 2014 .bashrc drwxr-xr-x. 2 git git 4096 11月 12 2010 .gnome2 drwxr-xr-x. 4 git git 4096 5月 8 12:22 .mozilla drwxr-xr-x. 2 git git 4096 8月 28 20:08 .ssh

回到顶部

⑦ 将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

回到 Git Bash 下,导入文件:

$ ssh git@192.168.56.101 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

需要输入服务器端 git 用户的密码

回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

[root@localhost git]# cd .ssh
[root@localhost .ssh]# ll
总用量 4
-rw-rw-r--. 1 git git 398 8月  28 20:08 authorized_keys

可以查看一下是否是客户端生成的公钥。

重要:

修改 .ssh 目录的权限为 700

修改 .ssh/authorized_keys 文件的权限为 600

[root@localhost git]# chmod 700 .ssh
[root@localhost git]# cd .ssh
[root@localhost .ssh]# chmod 600 authorized_keys 

回到顶部

⑧ 客户端再次 clone 远程仓库

$ git clone git@192.168.56.101:/home/data/git/gittest.git

查看客户端项目目录:

项目已经 clone 了。

也可以使用 tortoiseGit 客户端来管理项目:

clone

回到顶部

⑨ 禁止 git 用户 ssh 登录服务器

之前在服务器端创建的 git 用户不允许 ssh 登录服务器

编辑 /etc/passwd

找到:

git:x:502:504::/home/git:/bin/bash

修改为

git:x:502:504::/home/git:/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

转载于:https://www.cnblogs.com/hupilan521/p/10188485.html

【git】搭建git服务器相关推荐

  1. Git -- 搭建git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  2. Git搭建私有服务器

    环境:Linux7.0最小版   git2.22.0 一.git服务器介绍 远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改.GitHub就是一个免费托管开源代码的远程仓库. ...

  3. git搭建局域网服务器

    安装git: sudo apt-get update sudo apt-get install git-core openssh-server 增加 developers 组以及创建保存项目的仓库: ...

  4. centos7 下搭建git服务器

    总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...

  5. 搭建Git服务器教程转载

    1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...

  6. Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  7. git进入项目目录 windows_Windows下搭建Git服务器

    Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...

  8. Gogs-Windows Server下搭建Git服务器

    全面的环境要求请看官网:https://gogs.io/docs/installation 我这里只列举我的环境:windows server 2012_x64.Git-2.19.1-64.mysql ...

  9. 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器

    在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...

  10. 搭建git for windows服务器(100%可以成功)【转】

    转自:http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用,为什么还要搭建git windows的服务器 ...

最新文章

  1. valueOf与toString方法研究
  2. VS2017-VC++校验和计算小工具
  3. C#中Invoke的用法(转)
  4. 现代数学和理论物理已经发展到多么令人震惊的水平了?
  5. 马士兵 redis 百度网盘_西甲周六攻略:巴萨 马竞 塞维利亚出战
  6. C++ 现代编程风格速查表
  7. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
  8. iOS上传图片和视频(base64和file)
  9. 做了全职妈妈后,你的生活将有5个方面的变化
  10. 机器学习项目必经十大磨难,看看自己渡过几劫了?
  11. 遇到local variable ‘e‘ referenced before assignment这样的问题应该如何解决
  12. ubuntu-桌面菜单栏、任务栏、标题栏都不见了-解决办法
  13. 合作的进化 6-10
  14. TCP发送端突发性(burst)发送报文的成因
  15. php excel导出柱状图,YII2框架下使用PHPExcel导出柱状图
  16. 拆分pdf文件最简单的方法
  17. 网络适配器有感叹号(56)
  18. kindle特性和硬件介绍(不介绍操作和使用方法)
  19. Perl中的单行注释和多行注释
  20. 使用cpolar发布群晖NAS上的网页 上篇(7.X版)

热门文章

  1. 计算机自爆命令,《我的世界》僵尸自爆指令一览 简单实用!
  2. 误差反向传播法(一)【计算图】
  3. Python【WINAPI】钩子程序获取账号密码等键盘输入信息
  4. 7 ida pro 网盘_IDA分析iOS网络协议
  5. 关于ISA2006引起网速慢或间歇性断网的问题的解决方法
  6. Rust 1.34.0 发布
  7. 实现自动文本摘要(python,java)
  8. 面试中对hashMap的再次理解,负载因子为什么为0.75
  9. Django中QueryDict的坑
  10. 一个汉字在数据库占几个字节