美文网首页
Github下使用多个SSH Key

Github下使用多个SSH Key

作者: 学而时习之_不亦说乎 | 来源:发表于2017-03-11 05:00 被阅读90次

    ---

    我们首先来了解一下,什么是SSH KEY?

    >SSH 密钥对总是成双出现的,一把公钥,一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须稳妥的保管好。

    >所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。这样子,我们即可保证了整个登录过程的安全,也不会受到中间人攻击。

    当我们在本地需要用不同的账户对Github上不同的项目进行提交,那么就涉及到在本地使用多个SSH KEY了,生成一个SSH Key的方法如下:

    ssh-keygen -t rsa -C "mailname1@xxx.com"

    上面这个email地址就是你在github上注册该账号时使用的email,系统会提示你,是否将key保存在 `~/.ssh/id_rsa` 这个文件中,如果这是你第一次生成SSH KEY,并且也你也只有一个账号,那么就可以存储到这个默认的位置,如果有多个账号的话,建议保存为`~/.ssh/id_rsa_emailname1`,方便以后识别。

    如果有多个Github的账号,那么继续生成一个SSK Key,并保存在`~/.ssh/id_rsa_emailname2`这个文件下。

    ssh-keygen -t rsa -C "mailname2@xxx.com"

    当生成了N个账号的SSH KEY并保存到相应的文件中时,在`~/.ssh`文件夹下建立一个`config`文件,该文件用来指明,当使用某个账号时对应使用哪个SSH KEY

    ```bash

    Host github.com_mailname1

    Hostname github.com

    User git

    IdentityFile ~/.ssh/id_rsa_mailname1

    Host github.com_mailname2

    Hostname github.com

    User git

    IdentityFile ~/.ssh/id_rsa_mailname2

    ```

    为了在版本库提交时,能够通过相应的Host找到与之对应的SSH KEY,我们还需要对版本库中的配置文件`.git/config`进行修改。比如,某个版本库使用的账号是`mailname1`这个邮箱地址注册的,那么我们就要将其配置文件中原来的

    url = git@github.com:xxxxxxxxx

    修改为

    url = git@github.com_mailname1:xxxxxxx

    这样,当我们提交这个版本库时,版本库会根据`github.com_mailname1`对应到`~/.ssh/config`文件中的相应HOST,并使用相应的SSH KEY。

    相关文章

      网友评论

          本文标题: Github下使用多个SSH Key

          本文链接:https://www.haomeiwen.com/subject/opyjlttx.html