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
    
  • 相关阅读:
    hadoop中namenode发生故障的处理方法
    开启虚拟机所报的错误:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary fil
    Hbase的安装与部署(集群版)
    分别用反射、编程接口的方式创建DataFrame
    用Mapreduce求共同好友
    SparkSteaming中直连与receiver两种方式的区别
    privot函数使用
    Ajax无刷新显示
    使用ScriptManager服务器控件前后台数据交互
    数据库知识
  • 原文地址:https://www.cnblogs.com/tester-ggf/p/12234329.html
Copyright © 2011-2022 走看看