linux下搭建git服务器

 

安装 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 var/www/test/sampla.git
[root@localhost home]# git init --bare var/www/test/sample.git
Initialized empty Git repository in /var/www/test/sample.git/
[root@localhost home]# cd var/www/test
[root@localhost git]# chown -R git:git sample.git/

客户端 clone 远程仓库

进入 Git Bash 命令行客户端,创建项目地址并进入:

从 Linux Git 服务器上 clone 项目(输入你的刚设置的密码):

 

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

 一路 yes

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

客户端创建 SSH 公钥和私钥

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

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

id_rsa 是私钥

id_rsa.pub 是公钥

服务器端 Git 打开 RSA 认证

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

[root@iZ2zegxsbwybwfq0sv1ragZ test]# cd /etc/ssh
[root@iZ2zegxsbwybwfq0sv1ragZ ssh]# ls
moduli      sshd_config       ssh_host_dsa_key.pub  ssh_host_key.pub  ssh_host_rsa_key.pub
ssh_config  ssh_host_dsa_key  ssh_host_key          ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并重启 sshd 服务:

[root@localhost ssh]# /etc/rc.d/init.d/ssd 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@iZ2zegxsbwybwfq0sv1ragZgit]# chown -R git:git .ssh
[root@iZ2zegxsbwybwfq0sv1ragZ git]# ll -a
total 24
drwx------  3 git  git  4096 Aug  8 11:41 .
drwxr-xr-x. 4 root root 4096 Aug  8 11:00 ..
-rw-r--r--  1 git  git    18 Mar 23 08:11 .bash_logout
-rw-r--r--  1 git  git   176 Mar 23 08:11 .bash_profile
-rw-r--r--  1 git  git   124 Mar 23 08:11 .bashrc
drwxr-xr-x  2 git  git  4096 Aug  8 11:41 .ssh

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

回到windows的 Git Bash 下,导入文件:

$ ssh git@你的远程服务器ip地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

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

 

 回到服务器端,查看 .ssh 下是否存在 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@47.93.222.78:/var/www/test/sample.git

禁止 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/love-snow/articles/7306178.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mkcramfs 命令学习

mkcramfs :创建只读文件系统 语 法 mkcramfs[必要参数][选择参数][源目录][目标文件]功 能mkcramfs 命令&#xff1a;用来创建CRAMFS只读文件系统 类似命令: fdisk cramfsck mount 执行权限: 超级用户 普通用户 命令属性: 磁盘维护 参数必要参数 -e 设置文件系…

对于Eclipse的正确用法

有时候我们刚刚修改了工程里的文件 但是启动的时候它硬是说你有东西没有声明 而那个东西又明明在那里。。 这时候我们可以认为实际与它调用的工程关系文件&#xff08;我假想的&#xff09; 不同步。。 我们可以通过clean功能来同步实际情况和工程关系文件 所以说我们每次改了之…

逻辑综合——工艺库

一、库文件的设置 运行DC时需要用到的库文件有&#xff1a;目标库&#xff08;target library&#xff09;、链接库&#xff08;link library&#xff09;、符号库&#xff08;symbol library&#xff09;、算术运算库&#xff08;synthetic library&#xff09;。 1、目标库…

weka 初练之 文本分类

0.注意weka的中文编码RunWeka.ini-----》fileEncodingutf-81.首先对分词后的 无新词发现的分词文件&#xff0c;转换成arff文件 命令java weka.core.converters.TextDirectoryLoader -dir D:\weibo\catagory\data10W\nlpirSegment\noNI > D:\weibo\catagory\data10W\nlpirSe…

[COGS 0065][NOIP 2002] 字串变换

65. [NOIP2002] 字串变换 ★★ 输入文件&#xff1a;string.in 输出文件&#xff1a;string.out 简单对比时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB [问题描述] 已知有两个字串A\$, B\$及一组字串变换的规则&#xff08;至多6个规则&#xff09;: A1\$ ->…

基与datatable的分页

在进行分页操作前&#xff0c;必须知道开启服务器模式后会向服务器发送的参数的含义&#xff1a; length:告诉服务器每页显示的数据条数 start&#xff1a;第一条数据的起始位置 draw:绘制计数器&#xff0c;&#xff08;特殊&#xff1a;服务器接收到参数后&#xff0c;需要返…

linux sock_raw原始套接字编程

sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|E…

逻辑综合——施加约束

Design Compiler时一个约束驱动&#xff08;constraint-driven&#xff09;的综合工具&#xff0c;它的结果与设计者施加的约束条件密切相关。 一、面积约束 进行面积的约束&#xff0c;也就是告诉DC综合的电路面积要在多少以内。在介绍约束命令之前&#xff0c;先了解一下面积…

[Codevs] 1004 四子连棋

1004 四子连棋 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description在一个4*4的棋盘上摆放了14颗棋子&#xff0c;其中有7颗白色棋子&#xff0c;7颗黑色棋子&#xff0c;有两个空白地带&#xff0c;任何一颗黑白棋子都可以向上下左右四个方向移动到相邻…

链接中获取文件名

算得上是-test.pdf 获取文件名 var str http://aaa.com/s/ddd/算得上是-test.pdf; console.log(str.match(/([^/*.])\.\w$/)) console.log(str.match(/([^/*.])\.\w$/)[0]) // 转载于:https://www.cnblogs.com/cssfirefly/p/6163370.html

逻辑综合——优化电路

对进行时序路径、工作环境、设计规则等进行约束完成之后&#xff0c;DC就可以进行综合、优化时序了&#xff0c;DC在优化过程中主要的策略将在下面进行说明。然而&#xff0c;当普通模式下不能进行优化的&#xff0c;就需要我们进行编写脚本来改进DC的优化来达到时序要求。 DC…

DOM包裹wrap()方法

DOM包裹wrap()方法 如果要将元素用其他元素包裹起来&#xff0c;也就是给它增加一个父元素&#xff0c;针对这样的处理&#xff0c;JQuery提供了一个wrap方法 .wrap( wrappingElement )&#xff1a;在集合中匹配的每个元素周围包裹一个HTML结构 简单的看一段代码&#xff1a; &…

usleep函数

usleep功能把进程挂起一段时间&#xff0c; 单位是微秒&#xff08;百万分之一秒&#xff09;&#xff1b; 头文件&#xff1a; unistd.h 语法: void usleep(int micro_seconds); 返回值: 无 内容说明&#xff1a;本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微…

限制Xamarin获取图片的大小

限制Xamarin获取图片的大小在App开发中&#xff0c;经常会使用网络图片。因为这样不仅可以减少App的大小&#xff0c;还可以动态更新图片。但是手机使用网络环境千差万别。当网络环境不是理想的情况下&#xff0c;加载网络图片就是一个棘手的问题了。为了避免长时间加载图片影响…

Linux应用开发自学之路

前言 在 「关于我 」那篇博文里&#xff0c;朋友们应该知道了我不是科班出身&#xff0c;是由机械强行转行到Linux应用开发方向。下面我就详细向大家介绍自己这一路上的转行历程&#xff0c;希望对大家有所启发。 我是学机械专业的&#xff0c;对于机械专业我还是很感兴趣&…

Verdi 基础教程

一、Verdi 功能 查看设计debugVerdi不能自己产生波形 二、Verdi使用流程 1、Verdi环境配置 .bashrc中配置 export Verdi_HOME$Synopsys_Dir/Verdi2015 #export NOVAS_HOME$Synopsys_Dir/Verdi2015 export PATH$Verdi_HOME/bin:$PATH export LD_LIBRARY_PATH"/opt/Syno…

ida和idr机制分析(盘符分配机制)

内核ida和idr机制分析&#xff08;盘符分配机制&#xff09; ida和idr的机制在我个人看来&#xff0c;是内核管理整数资源的一种方法。在内核中&#xff0c;许多地方都用到了该结构&#xff08;例如class的id&#xff0c;disk的id&#xff09;&#xff0c;更直观的说&#xff0…

MIPI CSI-2学习

CSI&#xff08;Camera Serial Interface&#xff09;定义了摄像头外设与主机控制器之间的接口&#xff0c;旨在确定摄像头与主机控制器在移动应用中的标准。 关键词描述 缩写解释CCICamera Control Interface&#xff08;物理层组件&#xff0c;通常使用I2C或I3C进行通信&…

internet网络 checksum校验和计算方法

http://hi.baidu.com/%CE%C4%B3%AD%B9%AB/blog/item/7d9a4e08f82d72b32eddd4cb.html

最有效的创建大数据模型的6个技巧

数据建模是一门复杂的科学&#xff0c;涉及组织企业的数据以适应业务流程的需求。它需要设计逻辑关系&#xff0c;以便数据可以相互关联&#xff0c;并支持业务。然后将逻辑设计转换成物理模型&#xff0c;该物理模型由存储数据的存储设备、数据库和文件组成。 历史上&#xff…