在公司的托管平台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配置时候的截图截图

最新文章

  1. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(1)用户注册
  2. PPK谈JS笔记第一弹
  3. js整数补零
  4. 问题解决_WCF_WCF 接收我服务的 HTTP 响应时发生错误
  5. 邻接矩阵无向图(一)之 C语言详解
  6. codeforces 495B. Modular Equations 解题报告
  7. 【Eclipse】修改 编码格式
  8. IT电子书网站下载
  9. LINQ(LINQ to DataSet)
  10. Timer 的缺陷
  11. css黑魔法
  12. 基于visual Studio2013解决面试题之0304镜像二叉树
  13. c# PictureBox 的图像上使用鼠标画矩形框
  14. 史上最详细SharePoint 2013安装步骤图解新手教程
  15. angularjs中动态为audio绑定src
  16. Flask-Moment----探索
  17. 原生wcPop.js消息提示框(移动端)、内含仿微信弹窗效果
  18. CarbonData-2:core
  19. java全角和半角转换
  20. kvm 虚机环境碰到的两个小坑

热门文章

  1. 前端基础进阶之Promise
  2. linux下git命令
  3. ubuntu16.04下安装文献管理工具mendelay
  4. Scala学习笔记(3)-表达式归纳
  5. Oracle故障排查之oracle解决锁表问题
  6. SEO工作中如何增加用户体验?10个细节要注意!
  7. Tautology---poj3295(枚举判断是否为永真式)
  8. River Crossing---河南省第六届大学生程序设计竞赛
  9. 优云软件应邀出席 ITSS 数据中心运营管理工作组 2017 年春季研讨会
  10. ubuntu 下关闭apache服务自动启动