zoukankan      html  css  js  c++  java
  • 【工具使用】Git密码存储相关问题探究以及资料整理

    在公司的托管平台gogs上,遇到一个任务需要用不同的账号进行操作和处理。这样就遇到一个问题了,死活没有办法在拉去代码的时候,提示输入用户,输入密码。
    我的操作系统是mac、安装了git环境,用的软件是sourcetree。我就开始收集资料经过了一番排查。

    官方资料

    那么首先肯定是git官方资料:
    Git-工具-凭证存储
    Git是如何存储密码的?

    官方说明了git的一个密码存储配置

    1. 默认
    2. cache缓存一段时间
    3. store本地明文缓存
    4. mac系统有钥匙串
    5. window等其他系统有类似的工具。

    于是我排查了我的电脑果然是使用钥匙串,也就是当我第一次输入用户名和密码进行连接的时候,系统已经默认帮我记住了该网站对应的账户和密码,之后每次都进行输入。

    所以我想改成默认的配置,发现死活不生效。于是遇到了第二个问题配置的优先级的问题

    git默认有三个层级的配置:项目配置、全局配置、系统配置,一级会覆盖一级。但是mac系统中系统配置默认的就是钥匙串。于是乎无解。

    所以得到了初步的解决方案:1. 在钥匙串里面删除密码访问记录,所有的仓库都会重新需要你输入密码。

    使用ssh拉取镜像

    ssh拉去的好处之一省去输入密码的操作,这点我是很喜欢的。于是我查了基本流程

    1. 使用ssh-keygen生产对应rsa的公钥和加密的私钥。公钥要配置到服务器(账户上)私钥要添加到本地ssh连接中。
    2. 创建后通过ssh-add加入到ssh-agent(每次系统开机生效)意味着重启需要重新输入密码
    3. 使用ssh-add -K 添加到钥匙串中,不过依旧每次都得重启。
    4. 使用终端连接脚本处理,只针对终端脚本有效。
    5. 使用ssh的config进行配置,针对域名使用钥匙串进行私钥验证,以及添加映射匹配进行两者的区分。完美实现。

    参考文章:
    Mac sourcetree自动添加ssh key
    githubsshkey配置和使用
    是否必须每次添加ssh-add
    Mac下git通过SSH进行免密码安全连接github

    对比下拉代码的三种方式:

    http、https、ssh
    我就查找了下这三种分别对比的优缺点:
    http对比https
    ssh协议为什么安全

    期间我为了测试,使用gogs对应类似github的服务器

    使用docker进行安装
    用docker dao 进行镜像加速
    下载docker gogs镜像进行配置

    添加一张gogs配置时候的截图截图

  • 相关阅读:
    ojdbc14.jar
    Redis
    ftl转成word
    Swagger
    SpringBoot
    条件注解
    Spring SpringMVC MyBatis
    Spring介绍
    Django_mysql表查询
    Django01
  • 原文地址:https://www.cnblogs.com/fly-piglet/p/10136479.html
Copyright © 2011-2022 走看看