多个Git配置多个ssh密钥

同一台电脑的同一个ssh共钥无法配置到多个github账号。例如公司的电脑ssh公钥配置到公司的github账号后,无法在使用同一个公钥配置个人的github账号。这时候需要生成多个ssh密钥,分别配置给不同的github账户

目前所有命令操作是在 win下的 git_bash 中操作的

生成新的ssh key

$ cd ~/.ssh/
lin@DESKTOP-8IV0LG9 MINGW64 ~/.ssh
$ ssh-keygen -t rsa -f "company"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in company.
Your public key has been saved in company.pub.
The key fingerprint is:
SHA256:gxVP4oU3XzI1clhKC4L/154QRGSsf6+vqvSW2g7qYyc lin@DESKTOP-8IV0LG9
The key's randomart image is:
+---[RSA 2048]----+
|       .+.++*+=  |
|      ...Bo+*=.. |
|       .o..=o+   |
|       o. . o    |
|      . S. . o   |
|         .. + o  |
|          o. = o |
|        Eo.+o o .|
|       oo+o==.o+.|
+----[SHA256]-----+

执行命令 ssh-keygen -t rsa -C xxxx 后,会有一个输入密码(Enter passphrase (empty for no passphrase)) 与再次确认密码(Enter same passphrase again)的动作,这个时候如果你输入了密码,以后每次git操作都必须输入密码,推荐直接回车。踩坑人的文章地址:解决使用git,ssh每次都要输入密码

-f给新生成的密钥自定义命名,否则生成的是默认密钥:id_rsa与id_rsa.pub 它会覆盖掉现有的默认密钥,执行完成后,会在 ~/.ssh/目录下生成一个 companycompany.pub 文件

复制新的公钥到github账号

使用 cat company.pub,查看并复制显示的内容。

  1. 右上角下拉面板选择 Settings;


  2. 左侧选择 SSH and GPG keys,点击 New SSH key;


  3. 起一个 title,Key type 不用改,默认Authentication Key就行;


  4. 把公钥粘贴到 Key 选项下面。

配置~/.ssh/config 文件

vim ~/.ssh/config,写入如下内容

# key1 公司的github账号
 # github
 Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa
 
 # key2 个人的guthub账号, lpb.github.com. me是自定义的
 Host lpb.github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/company

Bad owner or permissions on ~/.ssh/config,主要是没有对config的权限,运行命令: sudo chmod 600 config

测试ssh到github服务器的连接

lin@DESKTOP-8IV0LG9 MINGW64 ~/.ssh
$ ssh -T git@lpb.github.com
Hi linPB! You've successfully authenticated, but GitHub does not provide shell access.

lin@DESKTOP-8IV0LG9 MINGW64 ~/.ssh
$ ssh -T git@github.com
Permission denied (publickey).

如果出现Hi USERNAME! You’ve successfully authenticated, but github does not provide shell access.提示,说明我们的配置成功,到此就可以结束了。否则出现Permission denied (publickey)提示,说明系统ssh代理出现问题。

出现以上原因主要是因为:

github使用SSH与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至 GitHub ,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。但是如果是 多用户 (first,second),我们在连接到second的帐号时,second保存的是自己的公钥,但是SSH客户端依然发送默认私钥,即first的私钥,那么这个验证自然无法通过。

配置ssh key代理

  1. 查看系统ssh-key代理,执行如下命令:
ssh-add -l

如果提示Could not open a connection to your authentication agent.,那么先执行下ssh-agent bash
以上命令如果输出The agent has no identities.则表示没有代理。如果系统有代理,可以执行下面的命令清除代理:ssh-add -D

  1. 然后依次将不同的ssh添加代理,执行命令如下:
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/company
  1. 再次进行ssh测试即可.

注意事项:ssh测试之后,在连接非默认账号的github仓库时,远程的地址要对应的作出修改.
配置了lpb.github.com用作个人的git我们就不能在用git@github了,要是用git@lpb.github.com

如果是配置git ssh密钥前已经拉过的代码,需要修改远程URL
远程URL如果是 https 的,直接改成 用 ssh 的,注意上面的提示,不用 git@github 这个,用自定义的 git@lpb.github.com 这个,如果是 ssh 的,但是是 git@github 的,也要重新改下,改成 自定义的。
查看 remote :git remote -v
修改 remote :git remote set-url origin git@lpb.github.com:[用户名]/[仓库名].git

参考文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 223,858评论 6 521
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 95,753评论 3 402
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 170,876评论 0 366
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 60,560评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 69,574评论 6 399
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,097评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,477评论 3 427
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,452评论 0 278
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,980评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,017评论 3 343
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,168评论 1 354
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,807评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,497评论 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,976评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,094评论 1 275
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,659评论 3 380
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,196评论 2 363

推荐阅读更多精彩内容