1.安装 yum install git

2.增加用户 useradd git -d /home/git -g git

3.查看公钥鉴权文件是否存在  cat /home/git/.ssh/authorized_keys

4.不存在的话,新建

cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

5.生成一个密钥对

ssh-keygen -t rsa -C "fallshum"

是否输入密码,默认,一路Enter往下走就行

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
1d:f1:b6:c9:42:2b:ab:1d:43:5a:72:fc:31:aa:38:9d fallshum
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o |
| o o |
| . o = o |
| . S * + |
| * = + |
| ...= . |
| ..E+ o |
| ..o . |
+-----------------+

5.1 把生成的公钥写入/home/git/.ssh/authorized_keys

cat /root/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys

查看 cat /home/git/.ssh/authorized_keys

5.2

把私钥放到客户端的.ssh目录下,先获取刚才生成的私钥

cat /root/.ssh/id_rsa

复制出来放到本地客户端

6.初始化Git仓库 修改所有者 
cd /home/git/

git init --bare fallshum.git

chown -R git:git fallshum.git/

5 客户端克隆仓库

客户端打开Git Bash,clone服务端仓库

git clone git@192.168.1.1:/home/git/fallshum.git

只要看到Checking connectivity... done就说明OK了

------------------------------------------------------------------------

6.免密登录

  进入sshd配置文件  vim /etc/ssh/sshd_config

  修改为以下配置

  保证 .ssh目录权限   700

  保证 authorized_keys 目录权限  600

7.配置多个公匙 要用空格隔开

方法2 :

1//添加用户git,(注意这里使用的是adduser,而不是useradd。)
root@myUbuntu:/# adduser git

2. 设置密码 passwd git

3.
su git
//切换git用户,查看是否成功
git@myUbuntu:/$
exit
//退出重新登录,验证密码
4.
//git用户创建成功后,会在home目录下自动生成git的用户目录

5.

//收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥复制粘贴到/home/git/.ssh/authorized_keys文件里,一行一个。
//我的git目录里没有这个文件,所以需要手动创建
root@myUbuntu:/home/git#
mkdir .ssh
root@myUbuntu:/home/git#
cd .ssh/
root@myUbuntu:/home/git/.ssh# touch authorized_keys
root@myUbuntu:/home/git/.ssh#
vi authorized_keys
//将公钥添加进去
//进入根目录下的srv目录(本目录是Linux为了server而建立的,一般里面是空的)
root@myUbuntu:/srv# mkdir sample.git
root@myUbuntu:/srv# ls
sample.git
root@myUbuntu:/srv#
6.
git init --bare sample.git/
//注意,在srv目录下进行git的初始化
初始化空的 Git 版本库于 /srv/sample.git/
//Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。所以,修改sample.git的用户和用户组的归属
root@myUbuntu:/srv#
7.
chown -R git:git sample.git/
root@myUbuntu:/srv# ll

总用量 12
drwxr-xr-x 3 root root 4096 5月 13 19:22 ./
drwxr-xr-x 22 root root 4096 4月 29 20:40 ../
drwxr-xr-x 7
git git
4096 5月 13 19:22 sample.git/

----------------------------------------------------------------

8.配置账户权限

修改/etc/passwd文件,修改

接下来遇到的问题

9.

克隆仓库: git clone tkgitserver@xxx9:/home/tkgitserver/fallshum.git
克隆仓库: git clone git@xxx:/home/git/gitStore.git

遇到的问题 1:

The authenticity of host 'IP' can't be established:

解决

https://yq.aliyun.com/articles/288093

解决方法

  1. 根据上面的理论,我们用下面的命令登录就不会出问题了。
ssh  -o StrictHostKeyChecking=no username@47.95.xxx.xxx
  1. 还有一种方法是彻底去掉提示,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

修改好配置后,重新启动sshd服务即可,命令为:/etc/init.d/sshd restart (或 systemctl restart sshd )
当然,这是内网中非常信任的服务器之间的ssh连接,所以不考虑安全问题,就直接去掉了主机密钥(host key)的检查。

2.no such identity: C:/Users/Mt.tk/.ssh/id_rsa_tkserver: No such file or directory

git@3xxxxxxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

修改设置文件权限

  1. chown -R git:git /home/git
  2.  chmod 700 /home/git
  3.  chmod 700 /home/git/.ssh
  4. chmod 644 /home/git/.ssh/authorized_keys
  5. chmod 600 /root/.ssh/id_rsa   

3. 将本地的公匙 合并于git服务器  /服务端为其他程序分配git权限

 将客户端的密钥写入密钥存储文件:

[gituser@GitServer ~/.ssh]$ cat id_rsa.pub >> authorized_keys
4.连接自己搭建的 git服务器时 使用
$ git clone 你的用户名@你的服务器地址:/home/tkgitserver/fallshum.git

git-搭建企业git服务器的更多相关文章

  1. 搭建企业cacti服务器

    搭建企业cacti服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天搭建了cacti,为了方便监控我的交换机~因为查了很多zabbix的资料关于监控交换机的教程~我都屡屡失 ...

  2. 搭建企业git代码版本管理所需工具

    此片文章纯属记录一下使用gitlab搭建私有git版本管理的一些工具及概念. 先记录一下概念 git         是一种版本控制系统,是一个命令,是一种工具 github   是一个基于git实现 ...

  3. 使用Hudson搭建自动构建服务器

    环境: ubuntu1404_x64 说明: 使用hudson和git搭建自动构建服务器的简单示例 安装hudson及相关插件 安装hudson 安装命令如下: sudo sh -c "ec ...

  4. Git-gitblit-Tortoisegit 搭建Windows Git本地服务器

    1.Gitblit安装 1.1.Gitblit简介 Git在版本控制领域可谓是深受程序员喜爱.对于开源的项目,可以免费托管到GitHub上面,相当的方便.但是私有项目托管到GitHub会收取相当昂贵的 ...

  5. Ubuntu 14.04搭建简单git服务器

    /****************************************************************************** * Ubuntu 14.04搭建简单gi ...

  6. Git -- 搭建git服务器

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

  7. 服务器搭建私人Git

    环境是CentOS 7.4 64位 主要参考:在服务器上搭建 Git 0. 预备 安装git yum install git 1. 开发者-生成个人SSH公钥 p.s. 书中的4.3节是[生成个人的S ...

  8. 使用Gitblit 搭建Windows Git服务器

    使用Gitblit 搭建Windows Git服务器 整理使用Gitblit搭建Git服务器的步骤. 目录 使用Gitblit 搭建Windows Git服务器 目录 下载安装 配置 运行 客户端运行 ...

  9. 搭建本地git服务器

    最近因为项目需求,需要实现一个原型系统,加上后期项目需要多人协作,考虑采用了git做版本控制. 这里主要简要描述下git服务器和客户端的搭建和配置. 1.git服务器 (1)安装git sudo ap ...

随机推荐

  1. JVM底层又是如何实现synchronized的【转载】

    目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea.本文并不比较synchronized与Loc ...

  2. Centos7.0根分区扩容

    添加一块10G的硬盘 查看磁盘大小 # df -Th 查看物理卷组 # vgdisplay 查看逻辑卷 # lvs 查看磁盘信息 # fdisk -l 对添加的10G硬盘分区 # fdisk /dev ...

  3. [UE4]多线程开关,开启的解决方案

    像这样直接获取值就会被警告. 解决方法:定义一个变量speed,然后在“Blueprint Update Animation”事件中赋值给这个变量. 这样就不会被警告了. 另外一种解决方法:就是关掉多 ...

  4. Jensen不等式

  5. Hook技术之API拦截(API Hook)

    一.实现过程 1.钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统. 2.在消息没有到达目的窗口前,钩子就捕获消息(即钩子函数先得到控制权). 3.钩子可以加工处理该消息,即钩子机制允许应 ...

  6. Masonry基本语法

    添加约束的方式: 1.通过使用NSLayoutConstraints添加约束到约束数组中,之前必须设置translatesAutoresizingMaskIntoConstraints = NO,即取 ...

  7. tp5 post接到的json被转义怎么解决???

    $data =input('post.');//用户唯一标识$goods = $data['goods']; $shopcuxiao=$data['shopcuxiao']; $goods=htmls ...

  8. MySQL库操作,表操作,数据操作。

      数据库服务器:本质就是一台计算机,该计算机上安装有数据库管理软件的服务端,供客户端访问使用. 1数据库管理系统RDBMS(本质就是一个C/S架构的套接字),关系型数据库管理系统. 库:(文件夹)- ...

  9. angularjs的cache

    首先要引入angular-cookies.js插件 angular.module('app').service('cache', ['$cookies', function($cookies){ th ...

  10. WPF简单实用方法(持续更新)

    1:点击退出提示框 MessageBoxResult result = MessageBox.Show("你真的要退出吗?", "", MessageBoxBu ...