同一台机器下多个github账号应用不同的SSH配置

本文介绍了如何在Mac上为不同的GitHub账号设置多个SSH密钥,以便在同一台机器上既能使用公司账号提交代码,也能用个人账号进行项目开发。主要步骤包括创建不同的公钥,通过`ssh-add`添加公钥,修改`.ssh/config`文件以指定不同账号的SSH配置,以及在克隆仓库时使用对应的Host名来确保正确授权。
应用场景
作为一个使用mac+github的开发人员,除了上班期间使用公司账号提交代码,业余时间也会用自己的账号写一些感兴趣的小项目。

默认情况下,Mac下只会支持一个github的ssh配置,当你向另一个账号的项目push时,git会使用默认的账号进行权限验证,结果
就是没法在同一个Mac机器下共存多个github账号。那如何做到这些呢?

创建不同的公钥
参考 github SSH帮助分别为公司账号和个人账号创建一个公钥,假定两个公钥创建完后为:
    ~/.ssh/id_rsa_work
    ~/.ssh/id_rsa_personal

按照如下方式添加这两个公钥:
    $ ssh-add ~/.ssh/id_rsa_work
    $ ssh-add ~/.ssh/id_rsa_personal

最后,你可以使用如下命令检查已保存的公钥:
    $ ssh-add -l

参考github SSH帮助将新建的公钥分别添加到公司github账号和个人github账号

修改.ssh/config
修改~/.ssh/config以添加多个ssh配置
    # Work GitHub
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_work

    # Personal GitHub
    Host personal.github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_personal

测试配置
使用如下命令,检查之前的配置是否正确:
    $ ssh -T git@github.com
    Hi pwang08! You've successfully authenticated, but GitHub does not provide shell access.
    $ ssh -T git@personal.github.com
    Hi Turalyonx! You've successfully authenticated, but GitHub does not provide shell access.

牛刀小试
对于公司账号的项目,git使用跟之前没有任何区别,因为公司账号是默认账号。

对于个人账户下的项目,假设其ssh链接为:
    git@github.com:myaccount/cocos2d-x.git
如果我们直接执行
    git clone git@github.com:myaccount/cocos2d-x.git
git会根据~/.ssh/config配置下的Host去寻找授权信息,比如当前链接的Host为github.com,那么git就会使用~/.ssh/id_rsa_work进行授权
由于这是个人项目,授权就会失败。那么如何才能让git去找到正确的授权信息呢,只需要把项目链接
    git@github.com:myaccount/cocos2d-x.git
修改成
    git@personal.github.com:myaccount/cocos2d-x.git
即可。现在git就会根据personal.github.com找到~/.ssh/id_rsa_personal,并使用其作为授权文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值