需求: 公司的工作使用的github作为远程仓库,故有一个公司邮箱注册的账号,而我自己也有自己的github账号,需要(摸鱼)时也想推送一些代码到私人仓库中.
注意: 此方法也适用于gitlab, gitee等平台.
分析: github上拉代码,推代码有两种方法,一种是使用账号密码的形式,另一种是使用ssh.作为一个懒人,肯定是越省事越好.所以选择ssh的方法.
所以一台电脑需要生成两个ssh_key,分别对应两个账号.
把密钥添加到ssh-agent
把ssh-agent在后台启动
eval "$(ssh-agent -s)"
方法:
1. 进入~/.ssh文件夹,使用ssh-keygen -t rsa -C "personal@qq.com"命令,一路enter,先生成一个自己的keygen.输入名字的时候,可以输入id_rsa_personal
2. 再次输入ssh-keygen -t rsa -C "company@qq.com"(注意与第一个命令邮箱的区别),注意,这里先别急着enter,这时如果还enter会覆盖掉第一步生成keygen, 这里要给本次keygen起一个新的名字,比如id_rsa_company,生成一个公司账号的keygen.
此时.ssh 文件夹中应该有四个文件,分别是:
id_rsa_personal
id_rsa_personal.pub
id_rsa_company
id_rsa_company.pub
3. 但是这样的话其实默认找到的还是第一次生成的keygen,这是系统默认的.如果想让两个都被检索到,需要把ssh key 加到 ssh agent 中
重点来了! 执行ssh-add -K ~/.ssh/id_rsa_company把keygen加入到agent中,这样公司的账号也能推拉代码啦~(这命令相当于把对应的密钥加进 ssh-agent 所管理的一个 session 当中,这样每次关机重启之后ssh-agent 服务也就重置了,session 会话也就失效了。就需要重新再加一次。所以加个参数 -k是将密钥放在 keychain中,这样就不会过期了)
补充: 发现原来自己的账号却不能拉代码了,一直说仓库不存在,我凭直觉执行了ssh-add -K ~/.ssh/id_rsa,把第一次自己的keygen也加入到了agent中.终于可以拉了!
如果 是mac os 12+,还需要配置config,进入 .ssh,添加config文件,vi config,输入:
如果有两个GitHub账户,如何配置SSH密钥并使用?
假设现在有两个GitHub账户,对应两个SSH密钥old_id_rsa和new_id_rsa。如果还没有密钥,分别按上面的步骤创建和添加。
修改config文件如下
# 配置多个id_rsa
# github
Host github.com # Host是别名,通过git拉取的时候,要用别名
HostName github.com # HostName是远程仓库的域名
IdentityFile ~/.ssh/id_rsa_personal
AddKeysToAgent yes
# PreferredAuthentications publickey
User personal@qq.com
# 公司项目
Host github_company #别名!!!重要,拉取公司项目时,要用别名,如:git pull git@github_company:projectname.git
HostName github.com
IdentityFile ~/.ssh/id_rsa_company
AddKeysToAgent yes
User company@qq.com
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · github连接超时:Connection closed by remote host
- · 解决jenkins git@github.com: Permission denied (publickey)
- · macOS Charles 4.x版本的安装及使用(含破解激活)
- · mac安装go
- · Windows下配置Git多账号github码云
- · 史上最简单的Unity Hub破解教程(win&mac)
- · 这是windows还是mac?
- · 我的第一个开源框架,webspider
- · Validation of viewstate MAC failed 解决办法 (一)
- · Kafka 消费者poll配置
- · 蜗牛星际之黑群晖修改SSD中的grub.cfg
- · 免费内网测试 DNS泛域名nip.io/sslip.io