Git 认证凭据管理

参考资料

  1. 備忘録 gitlabで「remote: HTTP Basic: Access denied...」のエラーが出た時の対処方法

目录

  • [一. 获取`Personal access tokens`](#一. 获取Personal access tokens)
  • [二. 凭证保存](#二. 凭证保存)
    • [2.1 `store`](#2.1 store)
    • [2.2 `manager`](#2.2 manager)
    • [2.3 `cache`](#2.3 cache)
  • [三. 凭据管理](#三. 凭据管理)
    • [3.1 查看当前凭据保存的方式](#3.1 查看当前凭据保存的方式)
    • [3.2 禁用用户的凭证](#3.2 禁用用户的凭证)
  • [四. `Personal access tokens`添加到url中使用](#四. Personal access tokens添加到url中使用)

一. 获取Personal access tokens

  • Github
  • GitLab

二. 凭证保存

🔷Git保存凭证一共有如下三种方式

配置 凭证保存位置 安全性
store ~/.git-credentials ⚠️ 明文
manager Windows 凭据管理器 ✅ 更安全
cache 内存缓存 ✅ 退出/过期后消失

2.1 store

  • 将凭证明文保存到~/.git-credentials中
  • 第一次clone项目的时候,会提示输入账号和密码
    • 需要注意的是,输入的密码并不是账户的登录密码
    • 而是发行的Personal access tokens
bash 复制代码
PS [FENGYEHONG-HP] 03-Test $ git config --global credential.helper store
PS [FENGYEHONG-HP] 03-Test $
PS [FENGYEHONG-HP] 03-Test $ git clone http://172.22.125.148/test/ci_cd_test.git
Cloning into 'ci_cd_test'...
Username for 'http://172.22.125.148': apluser
Password for 'http://apluser@172.22.125.148':
remote: Enumerating objects: 37, done.
remote: Counting objects: 100% (37/37), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 37 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (37/37), 11.36 KiB | 342.00 KiB/s, done.
Resolving deltas: 100% (2/2), done.
PS [FENGYEHONG-HP] 03-Test $
  • 可以看到Personal access tokens的凭证被明文写入凭证文件中
  • 然后对仓库进行代码拉取好提交时,就都不需要输入账号和密码了

2.2 manager

  • git config --global credential.helper manager
  • 通过Git的凭证管理器,将凭证信息保存到Windows凭据管理器中,相对更加安全。
  • git clone http://apluser@172.22.125.148/test/ci_cd_test.git:在url中加入用户名,可以无需输入用户名
  • 相关配置也会被保存到.gitconfig中

2.3 cache

  • 将凭证临时保存到内存中,退出或者过期之后,凭证就会消失
bash 复制代码
git config --global credential.helper cache 

三. 凭据管理

3.1 查看当前凭据保存的方式

bash 复制代码
PS [FENGYEHONG-HP] Desktop $ git config --global credential.helper
manager
PS [FENGYEHONG-HP] Desktop $

3.2 禁用用户的凭证

bash 复制代码
git config --global --unset credential.helper

四. Personal access tokens添加到url中使用

💥Personal access tokens💥直接暴露到url中,安全性比保存到~/.git-credentials还要低,只适合临时使用。

bash 复制代码
# clone代码时指定【Personal access tokens】
git clone http://oauth2:【Personal access tokens】@172.22.125.148/test/ci_cd_test.git

# 当项目clone本地后,修改远端的url
git remote set-url origin http://oauth2:【Personal access tokens】@172.22.125.148/test/ci_cd_test.git
  • 如下图所示,Personal access tokens直接暴露到url中,安全性超低。
相关推荐
Winlifes5 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理6 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123456 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s6 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人7 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人7 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅7 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人7 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr7 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林7 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器