点击上方关注订阅黑码教主获取更多精彩内容
查看 yum 源仓库的 Git 信息:
yum info git
yum中最新的Git一般比较低,如果无所谓的话,可以直接使用以下命令安装
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel$ yum install gcc perl-ExtUtils-MakeMaker
如需卸载 yum安装的git,使用
yum remove git
手动下载安装git
$ mkdir /usr/local/git && cd /usr/local/git$ wget https://github.com/git/git/archive/v2.9.2.tar.gz$ tar -xzvf v2.9.2.tar.gz
编译安装Git
$ cd git-2.9.2$ make prefix=/usr/local/git all$ make prefix=/usr/local/git install
如果出现错误 error: curl/curl.h: No such file or directory
则
yum install libcurl-dev libcurl-devel
编译安装git提示:Can't locate ExtUtils/MakeMaker.pm in @INC
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
添加到环境变量
$ vim /etc/profileexport PATH="/usr/local/git/bin:$PATH"$ source /etc/profile
查看Git版本
$ git --version
将git设置为默认路径
$ ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack $ ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
创建一个Git用户组和用户
$ groupadd git$ useradd git -g git$ passwd git
useradd 用户组 -g git:在当前路径下生成一个用户组名称的目录
passwd git:为git用户组添加密码
切换到git用户
$ su - git
创建Git密钥
注册用户名和邮箱
$ git config --global user.name "user.name"$ git config --global user.email "user.email"
查看是否存在ssh keys
$ cd ~/.ssh
若出现“No such file or directory”,则表示需要创建一个ssh keys。
创建新的 ssh keys
$ ssh-keygen -t rsa -C "your email" # 默认在当前位置创建rsa密钥
Git服务器打开RSA认证
$ vim /etc/ssh/sshd_configRSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys
从以上的AuthorizedKeysFile的值可以看出,默认keys是存放于 .ssh/中的,所以我们需要
$ cd /home/git/$ mkdir .ssh$ vim .ssh/authorized_keys
导入客户端公钥
$ cat id_rsa.pub >> .ssh/authorized_keys
在authorized_keys内,每行的公钥代表一个客户端公钥
权限修改
$ cd /home/git/$ mkdir .ssh #新建文件夹$ chmod 700 .ssh $ touch .ssh/authorized_keys #新建文件$ chmod 600 .ssh/authorized_keys
初始化Git仓库
$ cd /home/git$ git init --bare test.gitInitialized empty Git repository in /home/git/test.git/#修改工作区的用户和用户组,用于 git 的receive 勾子有权限更新$ chown git:git -R test.git
从本地克隆仓库
$ git clone git@your-ip:test.gitCloning into 'test'...warning: You appear to have cloned an empty repository.Checking connectivity... done.
重启sshd服务
systemctl restart sshd.servicesystemctl status sshd.service #查看ssh服务的状态systemctl start sshd.service #开启ssh服务sytemctl enable sshd.service #ssh服务随开机启动,还有个disabledsystemctl stop sshd.service #停止正常情况下应该是Active:active(running)
如果你觉得本篇还不错,请点赞关注!
文章由黑码教主创作,仅代表个人观点,配图源于网络版权归原作者所有,如有侵权联系删除!