zoukankan      html  css  js  c++  java
  • 多个github账号时,本地配置ssh-key

    由于需要,申请了多个github账号,但是都是在同一台电脑上操作,原来只有一个账号进行ssh操作时,推送没有遇到什么问题,现在有多个账号了,推送的时候就有点懵逼了,下面是根据网上的资料来进行多个账号,在本地配置ssh-key的操作过程。

    单个账号的 ssh-key 配置可查看文章:github设置添加ssh

    一、本地生成不同账号的秘钥信息

    ssh-keygen -t rsa -C "xxx1@xx.com"  #账号1
    
    ssh-keygen -t rsa -C "xxx2@xx.com" #账号2
    
    

    邮箱替换成自己github账号的绑定邮箱。

    运行上面命令后会让你输入一个文件名,用于保存生成的 SSH key 代码,如:

    CopyGenerating public/private rsa key pair.
    # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
    

    如果是只有一个账号的时候,可以默认保存。

    多个账号的时候可以在后面输入自己自定义的文件名,用来区分不同账号生成的秘钥。

    输入文件名后,回车继续往下会提示你输入密码,可直接回车不输入密码。

    多个账号都是同样的操作,操作结束后,就会在 ~/.ssh目录下生成多个秘钥。

    二、将公钥添加到不同的github账号上

    分别登陆自己github账号,然后将生成的公钥(.pub结尾的文件)添加到对应的账号下:

    Settings —> SSH and GPG keys

    三、配置 config 文件

    单个账号时不需要配置,默认即可,多个账号时进行配置。

    查看 ~/.ssh 文件下是否存在 config 文件,不存在的话新建一个,填写对应的配置信息:

    Host coder.github.com  // 别名
    HostName github.com // 服务器地址
    User javage // github用户名
    IdentityFile  ~/.ssh/coder // 对应的秘钥地址
    
    Host tester.github.com
    HostName github.com
    User tester
    IdentityFile  ~/.ssh/tester
    

    四、添加 key 信息到 ssh-agent 中

    因为默认只读取的默认生成的 id_rsa,为了让他能读取到修改过后的秘钥信息,需要添加到 ssh-agent中:

    ssh-add ~/.ssh/coder // 对应的秘钥文件
    
    ssh-add ~/.ssh/tester
    

    在执行命令中如果提示:

    Could not open a connection to your authentication agent.
    

    需要执行下如下命令:

    ssh-agent bash

    然后继续执行之前的命令即可。

    五、测试是否配置正确

    ssh -T git@coder.github.com
    
    ssh -T git@tester.github.com
    

    这里使用的是别名来进行访问,git 可以通过 config 配置的信息来请求对应的账号。

    • 请求成功提示:
    $ ssh -T git@coder.github.com
    Hi javaGe! You've successfully authenticated, but GitHub does not provide shell access.
    
    $ ssh -T git@tester.github.com
    Hi testerggf! You've successfully authenticated, but GitHub does not provide shell access.
    
    
    • 克隆项目:
    $ git clone git@tester.github.com:testerggf/studygit.git
    Cloning into 'studygit'...
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    Receiving objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    
    
    • 拉取项目:
    git pull git@coder.github.com:javage/javaGe.github.io.git
    
    • 推送项目:
    git push git@coder.github.com:javage/javaGe.github.io.git
    
  • 相关阅读:
    JSON学习笔记-5
    JSON学习笔记-4
    JSON学习笔记-3
    JSON学习笔记-2
    JSON学习笔记-1
    stm32f103各个型号芯片之间程序移植(stm32的兼容问题)
    如何找回微信小程序源码?2020年微信小程序反编译最新教程 小宇子李
    git常用命令
    304 怎么办 怎么解决 缓存解决
    微信小程序 CSS border-radius元素 overflow:hidden失效问题 iPhone ios 苹果兼容问题 伪类元素
  • 原文地址:https://www.cnblogs.com/tester-ggf/p/12234329.html
Copyright © 2011-2022 走看看