Linux(Centos7)安装Git服务器,多用户管理,设置ssh免密连接
- 一.安装git服务器前置准备
- 二.安装git服务器
- 三.创建组、用户并给用户设置密码
- 四.ssh证书登录
- 五.git修改远程仓库地址
一.安装git服务器前置准备
1.切换用户:
su - root
2. 查看已安装的git版本:
git --version
3.查看 yum 源仓库的 Git 信息:
yum info git
4.需要升级或重装git服务(Git服务版本过低,特别是: git version 2.* 以下的)
4.1 直接升级版本(升级完成后 git --version 查看是否升级版本成功,很可能无效,只能卸载后重装4.2)
yum -y upgrade git
4.2 卸载已安装的git服务
yum remove git
4.3 修改yum配置文件
vim /etc/yum.repos.d/wandisco-git.repo
按"i"键开启编辑,把内容直接替换成:
[wandisco-git]
name=Wandisco GIT Repository
baseurl=http://opensource.wandisco.com/centos/7/git/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
后按 "Esc"键 退出编辑 , 后输入 “:wq” 保存编辑操作退出
二.安装git服务器
1.安装git服务当前环境配置:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
2.安装git服务:
yum install git
三.创建组、用户并给用户设置密码
1.创建一个git用户组
groupadd git
2.创建一个git用户并添加到git用户组
useradd git -g git
3.设置密码
passwd git
输入你的密码
4.新建git的仓库,并设置权限,用户组为git (如果你的git仓库所在目录不一样,改成对应的目录)
chgrp [-R] 所属组 文件
chown [-R] 所有者:所属组 文件或目录
-R(注意是大写): 递归修改,对当前目录文件和子目录当中文件一并修改。
chmod 用于改变文件或目录权限 详情
cd /home
chown -R git:git git
cd /home/git/
mkdir warehouse
chown -R git:git warehouse
chmod 755 warehouse
# 创建一个裸仓库(空仓库)
git init --bare 项目名.git
chown -R git:git /home/git/warehouse/项目名.git
chmod 775 /home/git/warehouse/项目名.git
#以后每创建一个新的仓库.都需要执行上面的命令(修改仓库所属用户为git)
5.禁用git用户的shell登录,防止用户通过Git用户登录服务器
编辑 /etc/passwd 文件,将文件后边的bash改成git-shell
vim /etc/passwd
将("1001"是一个变量,找到 "git: “,修改最后”:"后边的bash改成git-shell)
git:x:1001:1001::/home/git:/bin/bash
改成
git:x:1001:1001::/home/git:/bin/git-shell
后按 "Esc"键 退出编辑 , 后输入 “:wq” 保存编辑操作退出。
四.ssh证书登录
服务端创建RSA #进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#保存并重启 sshd 服务:
systemctl restart sshd.service
1.在你的客户端机器上,生成ssh证书,如果实在windows下,可以在git bash中执行.
ssh-keygen -t rsa -C "你的邮箱地址" -f ~/.ssh/git_id_{{youName}}
2.将git_id_youName.pub传到 git服务器,ssh文件夹要被置为700权限,authorized_keys要被置为 600权限( 注意是>>,不是>,>会覆盖旧的数据)
cd /home/git/.ssh/
cat git_id_youName.pub >> authorized_keys
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys
如果用>>符号,即表进追加内容,不会覆盖原文件内容,只会在原文件内容下面追加你所输入的内容。>和>>千万别搞混了,用错可能会出大问题的
3.在客户端机器上.新建文件夹,在git bash中执行
git clone git@git服务器ip:/home/git/warehouse/项目名.git
4.客户端配置多个git账户修改.ssh下文件的:config(不存在就创建,该文件没有后缀)
# 配置文件参数
# Host 一个自定义名称,比如叫做aliyun,那么clone仓库的时候,就要用git clone git@aliyun:/home/git/fallshum.git
# HostName 实际要连接的主机地址
# PreferredAuthentications 配置登录时用什么权限认证–可设为publickey,password publickey,keyboard-interactive等
# IdentityFile 指明要使用的identityFile路径,也就是私钥的地址
# User 用户名 服务器的用户名
# git ssh 配置
Host git_{{youName}} #本地访问网址(HostName别称):git clone git@git_{{youName}}:/home/git/项目名.git
HostName 连接的主机地址 #git服务器ip或域名
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/git_id_{{youName}} #生成的秘钥文件
User git
5.客户端:查看主机是否与github网站之间的ssh通信是否连接成功 :ssh -T git@git_{{youName}}
ssh -T git@git_{{youName}}
五.git修改远程仓库地址
在原有git项目文件夹 ,在git bash中
先删原有的远程仓库地址 git remote rm origin
设置链接远程仓库 git remote add origin git@Host:home/git/warehouse/项目名.git
git remote rm origin
git remote add origin git@git_{{youName}}:home/git/warehouse/项目名.git