【git】搭建git服务器
在 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服务器相关推荐
- Git -- 搭建git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...
- Git搭建私有服务器
环境:Linux7.0最小版 git2.22.0 一.git服务器介绍 远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改.GitHub就是一个免费托管开源代码的远程仓库. ...
- git搭建局域网服务器
安装git: sudo apt-get update sudo apt-get install git-core openssh-server 增加 developers 组以及创建保存项目的仓库: ...
- centos7 下搭建git服务器
总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...
- 搭建Git服务器教程转载
1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...
- Linux 环境 搭建Git 服务器,并且修改SSH端口使用
1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...
- git进入项目目录 windows_Windows下搭建Git服务器
Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...
- Gogs-Windows Server下搭建Git服务器
全面的环境要求请看官网:https://gogs.io/docs/installation 我这里只列举我的环境:windows server 2012_x64.Git-2.19.1-64.mysql ...
- 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...
- 搭建git for windows服务器(100%可以成功)【转】
转自:http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用,为什么还要搭建git windows的服务器 ...
最新文章
- valueOf与toString方法研究
- VS2017-VC++校验和计算小工具
- C#中Invoke的用法(转)
- 现代数学和理论物理已经发展到多么令人震惊的水平了?
- 马士兵 redis 百度网盘_西甲周六攻略:巴萨 马竞 塞维利亚出战
- C++ 现代编程风格速查表
- 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
- iOS上传图片和视频(base64和file)
- 做了全职妈妈后,你的生活将有5个方面的变化
- 机器学习项目必经十大磨难,看看自己渡过几劫了?
- 遇到local variable ‘e‘ referenced before assignment这样的问题应该如何解决
- ubuntu-桌面菜单栏、任务栏、标题栏都不见了-解决办法
- 合作的进化 6-10
- TCP发送端突发性(burst)发送报文的成因
- php excel导出柱状图,YII2框架下使用PHPExcel导出柱状图
- 拆分pdf文件最简单的方法
- 网络适配器有感叹号(56)
- kindle特性和硬件介绍(不介绍操作和使用方法)
- Perl中的单行注释和多行注释
- 使用cpolar发布群晖NAS上的网页 上篇(7.X版)