1、安装Git

Jenkins持续集成环境部署 第四节

2、创建Git用户和用户组

  1. groupadd git
  2. useradd git -g git

3、创建证书
切换到git用户创建证书

  1. su git
  2. cd /home/git
  3. mkdir .ssh
  4. chmod 700 .ssh
  5. touch .ssh/authorized_keys
  6. chmod 600 .ssh/authorized_keys

注意:.ssh的权限必须是700,authorized_keys的权限必须是600

生成公钥和私钥文件

  1. $ cd .ssh
  2. $ ssh-keygen -t rsa

首先会让你输入要保存公钥的位置,直接回车即可,接着会提示让你重复一个密码两次,如果不想再使用公钥的时候输入密码,直接回车即可。完成后会在home目录下的.ssh目录中生成两个文件id_rsa(私有密钥)和id_rsa.pub(公钥)。

4、初始化Git仓库

首先,我们选定一个目录作为Git仓库,假定是/home/gitdeport/runoob.git

  1. $ cd /home
  2. $ mkdir gitdeport
  3. $ chown git:git gitdeport
  4. $ cd gitdeport
  5. $ git init --bare runoob.git
  6. Initialized empty Git repository in /home/gitdeport/runoob.git/

以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:

  1. $ chown -R git:git runoob.git

5、在客户端安装git

先安装git,再安装TortoiseGit,安装好后打开Git Bash:

6、设置用户名、邮箱

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置,如下图:

7、将Windows客户端和Linux服务端关联起来

想要将客户端和服务端连接的话要创建证书登录

打开windows的git bash,输入ssh-keygen -t rsa -C “邮箱”,生成ssh私钥和公钥,如下图:

此时,C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub。id_rsa 是私钥,id_rsa.pub是公钥。

收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

服务端Git打开RSA认证

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

保存后重启sshd服务:

将客户端公钥加到服务器

将客户端公钥id_rsa.pub文件的内容写到服务器端 /home/git/.ssh/authorized_keys 文件里

注:以上密钥只适用于使用Git Bash进行命令管理git的,即clone、push、pull等相关操作在Git Bash才不用输入密码,而如果使用TortoiseGit 可视化界面,仍然要输入密码。

8、在客户端clone远程仓库

将服务器上的/home/gitdeport/runoob.git库克隆到本地 git clone 用户名@服务器地址:仓库路径,如下图:

造成上面报错的原因是Linux服务器上git的安装路径是/usr/local/git,不是默认路径,根据提示,在git服务器192.168.182.130上, 建立链接文件:

  1. ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

再次执行clone命令成功,如下图:

这个过程有一点要千万注意:.ssh的权限必须是700,authorized_keys的权限必须是600

9、禁用git用户的shell登录

出于安全考虑,创建的git用户不允许登录shell,可以通过编辑/etc/passed文件完成,找到类似下面这一行:

  1. git:x::::/home/git:/bin/bash

改为:

  1. git:x::::/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

TortoiseGit 无需输入密码方法

1、打开puttygen

2、生成公钥和私钥

点击save private key保存putty的私钥,putty的密钥的后缀名是ppk。 把公钥添加到.ssh/authorized_keys 

注意: 
公钥在authorized_keys的文件形式是一行一个公钥,否则该公钥不起作用。

3、在tortoisegit上使用密钥

这样就OK了!!

使用TortoiseGit将文件提交至git服务器

提交失败,报错了,原因是:Linux服务器上git的安装路径是/usr/local/git,不是默认路径。

根据提示,在git服务器192.168.182.130上, 建立链接文件:

  1. ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

再次提交成功,如下图:

Linux下搭建Git服务器的更多相关文章

  1. 【转】在Linux下搭建Git服务器

    在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...

  2. 在Linux下搭建Git服务器的方法是什么样?

    第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...

  3. 在 Linux 下搭建 Git 服务器

    环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...

  4. 在 Linux 下搭建 Git 服务器(yum安装)

    服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...

  5. 在Linux下搭建Git服务器步骤

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

  6. Linux 下搭建Git 服务器详细步骤

    参考: https://www.cnblogs.com/dee0912/p/5815267.html#_label0 https://blog.csdn.net/carfge/article/deta ...

  7. kali linux 下搭建git服务器

    参考:http://www.cnblogs.com/dee0912/p/5815267.html https://www.liaoxuefeng.com/wiki/001373951630592960 ...

  8. 在Linux下搭建git服务器

    http://www.cnblogs.com/dee0912/p/5815267.html 步骤很详细,很受用

  9. Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

随机推荐

  1. Addthis分享插件后url乱码的解决办法

    Addthis分享插件安装后,有时候URL后面会出现类似#.VB4mxhbjtnQ的一串乱码的乱码,作用是用来追踪客户客户,但是给客户的印象会以为木马中毒之类的 http://localhost/mi ...

  2. 关于Mongodb的Cap理论的思考(转载)

    大约在五六年前,第一次接触到了当时已经是hot topic的NoSql.不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉.但是印象深刻的是这么一张图片( ...

  3. java字符串函数用法汇总

    替换字符串中的字符 例如有如下x的字符串 String x = "[kllkklk\kk\kllkk]"; 要将里面的"kk"替换为++,可以使用两种方法得到相 ...

  4. oracle 数据库安装及jdbc的连接

    今天,我在oracle的官网下载了数据库并进行安装,其中遇到一些问题,在此进行记录. 1.下载,之后,按照网上的教程进行安装,开始遇到 下载之后出现11g 出现ins13001环境不满足最低要求 这个 ...

  5. 03-01 Django之视图层

    Django之视图层 一 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象 ...

  6. python 正则表达式实例:

    #!/usr/bin/python import re line = "Cats are smarter than dogs" matchObj = re.match( r'(.* ...

  7. Springboot 注册拦截器

    拦截器 创建myInterceptor类 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSer ...

  8. git branch查看不到分支的名字解决办法

    git branch查看不到分支的名字解决办法 <!-- 1. 先初始化 --> git init; <!-- 2. 接着创建瑶瑶的专属分支 --> git checkout ...

  9. TensorFlow自动求梯度

    例1 import tensorflow as tf a=tf.Variable(tf.constant(1.0),name='a') b=tf.Variable(tf.constant(1.0),n ...

  10. 微信小程序需求IIS服务器配置https关于SSL,TLS的综合解决方案

    SpringBoot配置SSL同时支持http和https访问 传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure Socke ...