【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 # 将本项目提交至远程仓库

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 # 推送至远程仓,并关联远程分支

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.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值