当前位置:   article > 正文

【Git笔记管理】Git远程仓创建与权限管理_如何设置git远程仓库只对特定用户开放

如何设置git远程仓库只对特定用户开放


由于工作开发环境影响,为便于管理日常笔记,在云服务器上搭建Git远程仓,通过ssh免密clone、push笔记;实现ssh基本管理权限,禁止ssh登录后修改笔记账户中内容。

1. Git远程仓创建

  • 为便于管理,git远程仓应单独运行在服务端一个独立账户中,方便进行权限管理,本文以GitTest账户为例;
  • 仓库初始化需使用git init --bare选项创建裸仓,避免不必要push冲突;
  • master分支默认禁止非所属用户push,若需打开需添加配置git config receive.denyCurrentBranch ignore;不建议打开,防止混乱,可创建新分支进行管理;
# 假设当前用户为GitTest, 当前路径为/home/GitTest,当前公网ip为13.130.130.8
  mkdir test.git # 创建.git结尾文件夹
  cd ./test.git 
  git init --bare # 文件夹内初始化仓库;
  vim README.md # 创建第一个文件
  git add . && git commit -m "init" # 第一次提交
  git remote add origin ssh://GitTest@13.130.130.8/home/GitTest/test.git # 创建远程仓库
  git push origin master # 将本项目提交至远程仓库
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2. Git远程仓使用

  • 需保证能ping同服务端ip 13.130.130.8,且知道远程仓库所属账户GitTest密码;
  • 远程仓clone与push等操作需输入其用户GitTest密码,每次使用输入密码较为繁琐;
  • 免密操作:可使用git命令ssh-keygen命令生成ssh密钥,放入GitTest用户,后续ssh免密操作;
    生成默认路径为当前用户路径下C:\user\.ssh\id_rsa.pub文件,将其内容copy至服务端GitTest用户目录/home/GitTest/.ssh/authorized_keys文件(第一次使用需手动创建);
  # 输入密码后成功操作
  git clone ssh://GitTest@13.130.130.8/home/GitTest/test.git 
  
  git checkout -b Leran_Note # 创建本地分支
  git push origin Leran_Note:Leran_Note # 推送至远程仓,并关联远程分支
  • 1
  • 2
  • 3
  • 4
  • 5

3. Git远程仓账户ssh权限管理

上述操作后,GitTest用户仍可通过ssh直接访问,进行/home/GitTest目录下文件操作,多人使用时仓库文件安全性无法保证,需进行权限管理。

  1. 禁止GitTest账户ssh登录
    • cat /etc/passwd 可看到 GitTest:x:1000:1000:GitTest,,,:/home/GitTest:/bin/bash,即GitTest用户通过ssh链接后自启动一个/bin/bash类型shell,若想禁止其通过ssh直接登录,需更换自启动shell;
    • Git 的软件包提供了一个名叫 git-shell 的登陆 shell,一般情况下位于 /usr/bin/git-shell,可做到仅允许git相关操作;
    • 可使用chsh更改用户shell命令修改其登录方式chsh GitTest,然后将shell路径更改为/usr/bin/git-shell,完成替换;
  2. 上述操作后再次使用ssh登录GitTest,拒绝访问,至此完成基本权限管理;
ssh GitTest@13.130.130.8
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-164-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
New release '22.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Welcome to Alibaba Cloud Elastic Compute Service !

Last login: Sat Nov 18 00:09:50 2023 from 127.0.0.1
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 13.130.130.8 closed.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/533367
推荐阅读
相关标签
  

闽ICP备14008679号