centos 搭建 Git 仓库服务器

tech2024-10-06  18

首先确保安装服务器 Git

git --version // git version 1.8.3.1

 

建仓库

git init --bare /home/git/my_project.git // 赋予git用户、用户组 chown -R git:git my_project.git

生成公私钥

windows 下安装的  Git Bash

ssh-keygen -t rsa -C "我的邮箱@sina.com" 下一步下一步下一步 生成两个文件 一个公钥一个私钥 打开puttygen ,load按钮加载私钥, save private key 保存私钥为 .ppk 文件

 

查看 .shh 公钥配置

切换到用户命令: su git 查看 .ssh 配置命令: (~代表你的/home/用户明目录,假设你的用户名是x,那么~/就是/home/x/) cd ~/.ssh 如果没有就在 home/git 下新建: cd /home/git/ mkdir .ssh #新建文件夹 chmod 700 .ssh touch .ssh/authorized_keys #新建文件 chmod 600 .ssh/authorized_keys vim .ssh/authorized_keys #填写公钥保存 cat .ssh/authorized_keys

 

开启sshd_config配置(重点)

StrictModes no RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no

否则会出现  no supported authentication methods available   ( server send:  publickey,gssapi-keyex,gssapi-with-mic)

重启 SSH

service sshd restart

关闭 git 用户 shell 权限

禁止Shell登录 因为搭建git服务器后通常会建立一个git账户,其它人共用这个账户来克隆或推送数据到git仓库中,通常也只需要这个功能,但是如果不加限制,那么其它人可以通过这个git账户登录到主机,那么这样是不安全的,所以需要加以限制,即令git用户不允许登录shell,可以编辑/etc/passwd文件,找到类似下面的一行: git:x:502:502::/home/git:/bin/bash 改为 git:x:502:502::/home/git:/usr/local/git/bin/git-shell 【注】(个人用的话可忽略) 这样git这个账户就只能用来克隆或者推送数据到git仓库中了,而不能用它来登录到主机。 现在 git 用户只能用 SSH 连接来推送和获取 Git 仓库,而不能直接使用主机 shell,因为我们为git用户指定的git-shell每次一登录就自动退出,尝试普通 SSH 登录的话,会看到下面这样的拒绝信息: [root@localhost ~]# ssh git@192.168.25.133 git@192.168.25.133's password: Last login: Wed Jun 13 21:52:02 2018 fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. Connection to 192.168.25.133 closed.

 

 

参考链接:

https://www.jianshu.com/p/e4946edce9a4

https://www.ycmbcd.com/blog/html/15906398441556.html

最新回复(0)