在公司探索新知识(摸鱼)时,我们一般会需要在GitHub上维护维护自己的小仓库。
这样如果使用原来的配置就会发生Push代码时Permission Denied了。
所以我们有以下几步:
公司电脑是Mac,所以以下内容均为Mac上的操作,但不同操作系统其实大同小异。

不同仓库配置不同的提交用户信息

我们在公司电脑上主要还是提交公司的代码,所以为了方便,git的global用户信息可以设置为公司要求的name和email。
在自己的仓库下配置git账号信息可以覆盖掉全局的。

cd <你的仓库地址>
git config user.name <你的GitHub账户名>
git config user.email <你的GitHub账户邮箱>

生成不同的ssh密钥

# -C后接邮箱地址,例:-C "aaa@qq.com"
# -f后接生成密钥的路径(同时包含了密钥的文件名),这样就不用在生成时单独输入密钥文件名
# 不同的密钥文件名要区分不同文件名,以下是GitHub的ssh密钥示例
ssh-keygen -t rsa -C "<GitHub邮箱>" -f ~/.ssh/id_rsa_github# 这之后直接回车就行了

进入ssh文件夹,可以看到我本地生成了两个,一个是默认名称id_rsa,一个是GitHub的id_rsa_github,分别还有它们的公钥。

创建ssh配置文件

在上图可以看到我的ssh文件夹下有config文件,如果你从来没有配置过,那你的本地可能是没有这个文件的。

vim ~/.ssh/config# vim新手教程
# 按i键进入插入模式(进入插入模式才能输入内容),左下角有INSERT字样
# 输入完毕后按ESC突出插入模式,左下INSERT消失
# 按 :(英文) 键进入命令模式,光标移到了窗口最底下
# 输入wq保存并退出(w:保存,q:退出,可单独使用)# config文件插入以下内容,多个账号可以配置多组,中间建议间隔一行,这里只实例GitHub
Host git@github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github# Host 为使用ssh时的别名,在之后配置仓库远程地址时用到
# HostName 为远程仓库的域名
# User 一般为git,了解到好像填其他的也没太大影响
# IdentityFile 为生成的对应的ssh密钥文件

在远程仓库添加ssh公钥

GitHub官方教程

# 将公钥打印到命令行中方便复制
cat ~/.ssh/id_rsa_github.pub
  1. 在任何页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)。
  2. 在用户设置侧边栏中,单击 SSH and GPG keys(SSH 和 GPG 密钥)。
  3. 单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥)。
  4. 刚刚复制的公钥内容粘贴到下图Key中,Title写上方便你自己认识这个密钥的描述性内容

测试ssh链接

ssh -T git@github.com
# 这里-T后面接上的就是之前config文件中的Host别名# 如果看到以下内容,说明你已经成功了
# Hi <你的GitHub账户名>! You've successfully authenticated, but GitHub does not provide shell access.

配置仓库远程地址

# 原来配置远程仓库地址时我们使用https地址
git remote add origin https://github.com/<你的GitHub账户名称>/<你的仓库名称>.git# 现在我们使用config文件中的Host别名
git remote add origin git@github.com:<你的GitHub账户名称>/<你的仓库名称>.git

使你的ssh密钥持续生效

但我之所以写下这篇文章,就是因为我不是第一次配置了。
为了方便你以后不用再麻烦,请继续看。
当你重启一次电脑后,你的ssh密钥就没有被托管了,push代码的时候就会Permission Denied。
当然你可以重复以上步骤解决,但我们希望有更优雅的解决方式。原因在这个文章里说了,感兴趣的可以了解一下。
是否必须每次添加ssh-add

我们可以通过ssh-add命令将我们的ssh密钥重新添加到ssh-agent进行代理托管

ssh-add ~/.ssh/id_rsa_github

但是仍然会出现重启后失效的问题,所以我们可以将这个命令添加到命令行配置文件中。

vim ~/.zshrc# 添加以下内容,亦可添加多个密钥
# 将GitHub的ssh密钥添加到ssh-agent
ssh-add ~/.ssh/id_rsa_github
# 然后保存退出

本地配置多个git账户(公司、GitHub)相关推荐

  1. 本地配置多个 Git 账户信息,满足不同的 Git 平台

    写在前面的话 因为工作的时候为了访问速度快,我把很多仓库都迁移到了码云.但是呢,个人的一些东西还是保留在了 GitHub 了.这样就存在一个不得不解决的问题,就是两个平台的注册时使用的邮箱不同,用户名 ...

  2. 手把手叫你一台电脑配置两个Git账户

    假设环境 帐号一:github 帐号二:gitlab 配置帐号一 生成ssh密钥 1.安装Git软件 2.在桌面打开Git,进行设置 git config --global user.name &qu ...

  3. 在同一个Linux上配置多个git账户

    1.首先在~/.ssh目录下执行 ssh-keygen -t rsa -C "miaoying.new@qq.com" 其中 -C "miaoying.new@qq.co ...

  4. Git远程仓库Github

    Git远程仓库Github 目录 一.创建远程仓库 二.配置SSH 三.克隆项目 四.多人协同开发 五.代码冲突 六.标签 七.分支 提示:Github网站作为远程代码仓库时的操作和本地代码仓库一样的 ...

  5. git 添加用户名和邮箱_设置 Git 账户及邮箱

    当我们在GitHub中提交修改时,GitHub通过我们本地git配置文件中配置的邮箱地址,与我们的GitHub账户相关联,这样GitHub提交记录就可以关联提交者的GitHub账户. 那么我们怎么在本 ...

  6. Github(2)-本地配置git

    本地配置git 1.注册账号 2.安装git工具 3.配置git 账号 1.注册账号 github网页注册github账户 2.安装git工具 本地安装git工具 step1 查看是否安装git gi ...

  7. git配置本地用户名和邮箱—连接远程仓库(github)

    git配置本地用户名和邮箱-连接远程仓库(github) 设置或者修改用户名及邮箱 git config --global user.name "***" git config – ...

  8. 本地电脑Git如何连接Github账户

    windows系统本地电脑安装了Git之后,如果要和github连接,需要在电脑本地生成SSH秘钥,然后将公钥绑定到github上. 1.git bash打开命令行窗口,输入命令:git-keygen ...

  9. Git入门篇:镜像下载,安装,本地配置及其Git的本地文件上传到gitee详解

    Git 一.Git介绍 Git和SVN类似,也是一个配置管理工具,而他们的区别之处在于: SVN是集中管理 所有存档要保存在一台服务器上. 这里可能存在一个单点故障的问题,即一旦服务器出问题,所有人都 ...

最新文章

  1. 记阿里的一次壮烈牺牲
  2. Oracle Study之案例--数据恢复神器Flashback(2)
  3. volatile 和 sig_atomic_t
  4. c语言中文件读写面试题,在C ++中有效读取非常大的文本文件
  5. zabbix server配置文件
  6. 看看什么样的人适合网上开店( 转载)
  7. java编写八数码_java实现八数码
  8. 从tensorflow的summary中提取数据,并进行平滑操作与显示
  9. -离散数学-期末练习题解析
  10. 利用 LSTM 神经网络预测股价走势
  11. MySQL触发器写入Sqlseever_sqlserver 触发器实例
  12. 苹果ipad9和华为matepad11选哪个好
  13. 三角形形态-非常重要的整理形态
  14. 学习笔记三:ABtest
  15. MODBUS TCP/IP通信协议及测试方法
  16. 吐血推荐:“四无男”泡良 妞 实战攻略
  17. ASCLL码---阿斯科2码
  18. win10的基础上安装win7
  19. java最高线程优先级是,Java线程优先级
  20. 在windows应用商店安装ubuntu子系统错误总结

热门文章

  1. Cocos2d-x 游戏中子弹的设计
  2. Spring 框架更新了一条可能造成 RCE(远程命令执行漏洞)
  3. linux中read函数的用法,Linux中read命令的简介及使用方法
  4. 特战旅php 视频_15个特战旅精锐大比拼,新特种部队就一定差劲?咱们用实力来说话...
  5. backface-visibility
  6. 解决docker容器中文字符乱码问题
  7. java utf 8_java utf-8 乱码的解决方法
  8. 2018年上半年系统分析师上午试题答案
  9. ubuntu安装docker-生产环境(kubernetes推荐)
  10. ESXI和vSphere的安装配置-实现一台电脑硬件虚拟化为两台