概述

记录几个问题:

1、一台电脑上存储多个git账户生成的多个rsa密钥(私钥+公钥)

2、根据已有的私钥生成对应的公钥

3、每个仓库对应的.git/config配置文件仅对本地仓库有效,可以用于多用户、多REPO等管理

如此做之后,可以根据不同的服务器+邮箱生成对应的私钥,然后只需要保存一份私钥即可,这样子不同电脑上无需重新生成对应的新私钥+新公钥并将新公钥上传至服务器,减去切换带来的交互问题。

另外文章会记录一下knowhosts的解析,以及git config的相关使用,也会记录.git/config文件的本地地配置。

多git账户处理

首先使用 git config --list 查看全局配置:

$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true http.sslbackend=openssl http.sslcainfo=E:/Applications/Git/mingw64/ssl/certs/ca-bundle.crt
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
user.name=xxx
user.email=xx@xx.com
user.name=yyy
user.email=yy@yy.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true

出现了两组 user.name/ user.email,主要是因为笔者在对应的本地仓库目录下使用该命令,本地用户为 yy/yy.com

$ cat .git/config
[user] name = yyy email = yy@yy.com

而前面的 xx/xx@xx.com 则为全局配置的用户/邮箱,可以通过相关git config 指令配置。

官方 git config 指令相关链接文档: https://git-scm.com/docs/git-config。

git config 可以通过 --global 和 --local 选项配置全局和本地内容,全局内容保存在用户目录/.gitconfig中(笔者的Win7系统为该名),本地内容保存在对应目录的 .git/config文件中。

部分移除指令:

# 移除全局配置账户
git config --global --unset user.name
#查看全局用户名
git config --global user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global user.email
# 移除全局密码
git config --global --unset user.password
# 查看全局密码
git config --global user.password

多rsa密钥处理

rsa密钥相关需要使用 ssh-keygen 工具,对应生成的文件都在用户目录/.ssh/ 目录下。

根据邮箱生成新rsa密钥

相关指令为 ssh-keygen -t rsa -C "a@a.com" :

$ ssh-keygen -t rsa -C "a@a.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/--/.ssh/id_rsa):

可以指定 id_rsa_name 去生成对应的私钥和公钥,根据步骤一直回车确认即可。

MINGW64 ~/.ssh
$ ls
id_rsa  id_rsa.pub  id_rsa_name  id_rsa_name.pub  known_hosts

配置.ssh/config

密钥生成之后,需要对指定服务器进行配置,否则无法正常git clone等,此时在 .ssh目录下新建 config文件,添加对应内容如下:

Host 100.111.216.233 HostName 100.111.216.233 User a IdentityFile /c/Users/i5/.ssh/id_rsa_name

配置之后可以正常git clone服务器文件(服务器权限自行查看)

根据私钥生成公钥

如前文所说,保存固定私钥有利于不同电脑或其他管理的便捷,省去不必要的交互。

对应的生成指令如下:

ssh-keygen -y -f [private-key-path] > [output-path]

比如要根据上文的 id_rsa_name 生成 id_rsa_name.pub:

输入 ssh-keygen -y -f id_rsa_name > id_rsa_name.pub 即可。

http账号密码本地保存

在本地仓库的.git/config中添加下列选项即可:

[credential]         helper = store

如此无需每次远程操作都输入密码。 (本地密码保存应该是进行了加密,具体位置不清楚。)

参考资料

  • Git官方手册

单主机多git账户多rsa密钥+根据私钥生成公钥+knownhosts+.git/config相关配置相关推荐

  1. SpringSecurityOauth2授权模式与使用RSA非对称加密方式生成公钥私钥

    文章目录 一.用户认证分析 1.1 认证与授权 身份认证 用户授权 1.2 单点登录 1.3 第三方登录 二.认证技术方案了解(单点登录+第三方授权认证) 2.1单点登录技术方案 2.2 Oauth2 ...

  2. 密钥,私钥,公钥的区分

    首先明确几个基本概念: 1.密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的. 2.公钥,公钥用来给数据加密,用公钥加密的数据只 ...

  3. js实现rsa密钥的加密、解密与生成

    今天想用js实现rsa的加解密的,在网上找了好久,下载啊什么的,十分麻烦,今天我也不bb的直接放代码 rsa.html <!DOCTYPE html> <html lang=&quo ...

  4. Android、IOS客户端RSA密钥生成

    目录 OpenSSL介绍 使用OpenSSL 生成私钥 生成公钥 生成Java和Android的私钥 创建证书请求文件 生成数字证书 生成iOS使用的公钥文件 生成iOS使用的私钥文件 关于什么是密钥 ...

  5. linux下OpenSSL的RSA密钥生成

    工具的安装: 一.源码安装 OpenSSL Version:openssl-1.0.0e.tar.gz ------------------------安装: 1.将下载的压缩包放在根目录, 2.在文 ...

  6. 配置多个git账号的ssh密钥

    博客改版,请直接访问新版文章:https://www.cnblogs.com/xiaoxi666/p/9975981.html 背景 我们在工作中会以 ssh 的方式配置公司的 git 账号,但是平时 ...

  7. 本地配置多个git账户(公司、GitHub)

    在公司探索新知识(摸鱼)时,我们一般会需要在GitHub上维护维护自己的小仓库. 这样如果使用原来的配置就会发生Push代码时Permission Denied了. 所以我们有以下几步: 公司电脑是M ...

  8. 初次使用git配置以及git如何使用ssh密钥(将ssh密钥添加到github)

    初次安装git需要配置用户名和邮箱,否则git会提示:please tell me who you are. 你需要运行命令来配置你的用户名和邮箱: $ git config --global use ...

  9. RSA 密钥 明文 密文 长度介绍

    提到密钥,我们不得不提到RSA的三个重要大数:公钥指数e.私钥指数d和模值n.这三个大数是我们使用RSA时需要直接接触的,理解了本文的基础概念,即使未接触过RSA的开发人员也能应对自如的使用RSA相关 ...

  10. openssh升级之后git账户免密登陆失效

    昨天升级了openssh之后,git操作是免密的却要输入密码了,但是输入正确密码却又一直提示密码错误,查看sshd服务状态发现使用git账户登陆的时候会提示: get shadow informati ...

最新文章

  1. LigerUI——天外飞仙
  2. 【BZOJ 1927】 [Sdoi2010]星际竞速
  3. itstime后面跟什么_被父母当成摇钱树是种什么体验?
  4. echarts的x轴数量固定_联轴器 多节膜片式夹紧螺丝固定型 DAAPC(对应LK5CWP)
  5. “阿基里斯与乌龟”的终结性思考
  6. python字符串转换为json_在python2.7中将原始字符串转换为JSON对象
  7. 转:SQL的内连接与外连接
  8. 100以内的偶数的个数_10以内数字的奇偶性认识
  9. 计算机分屏功能吗,电脑分屏显示
  10. ubuntu 18.04设置静态ip(固定IP地址)
  11. 关于iPhone手机如何导入本地音乐
  12. Microsoft.NET Framework 3.5Service Pack1下载Windows功能失败原因
  13. vue手机适配媒体查询用法@media
  14. 入门者必看!SharePoint之CAML总结(实战)
  15. LeetCode 1646. 获取生成数组中的最大值 Python
  16. 定义一个圆类Circle,成员变量:半径 radius;成员方法:构造方法、get和set半径的方法、计算面积和周长的方法。
  17. 营收130亿净利却只有8亿,统一的钱都花在了哪?
  18. 桌面时钟(JS版本)-electron
  19. Bi系统跟数据中台的区别是什么?
  20. Elastic:培训视频 - ​在生产环境中配置 Fleet Server 和 Elastic Agent 之间的安全

热门文章

  1. JavaScript事件串连执行多个处理过程的方法
  2. 看到大家在讨论阿拉伯数字-》汉字数字的转换,拿出我去年写的C版本
  3. hibernate java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
  4. webpack5学习与实战-(一)-webpack的初步认识
  5. nginx访问日志配置及访问日志切割实战
  6. php debugdumpparams,PHP PDOStatement::debugDumpParams讲解
  7. python维度切片中三个是怎么取值的_总结python 多维切片之冒号和三个点的使用方法...
  8. springboot配置手动提交_Spring Boot 入门教程 | 图文讲解
  9. mobilenet cpu 加速_AMD锐龙5000系列CPU价格公布 哪款才是性价比之王_搜狐汽车
  10. php定义枚举,PHP枚举