一台电脑绑定两个github帐号教程
<h2>思路</h2><p>ssh 方式链接到 Github,需要唯一的公钥,如果想同一台电脑绑定两个Github 帐号,需要两个条件:</p>
<ol>
<li>能够生成两对 私钥/公钥</li>
<li>push 时,可以区分两个账户,推送到相应的仓库</li>
</ol>
<h2>解决方案:</h2>
<ol>
<li>生成 私钥/公钥 时,密钥文件命名避免重复</li>
<li>设置不同 Host 对应同一 HostName ,但密钥不同</li>
<li>取消 git 全局<code>用户名/邮箱</code>设置,为每个仓库独立设置 用户名/邮箱</li>
</ol>
<div>
<div>
<h2>操作方法</h2>
<ol>
<li><strong>查看已有密钥</strong><code><br></code></li>
</ol>
<ul>
<li style="list-style-type: none">
<ul>
<li> 输入命令 <code>ls ~/.ssh/</code>,看到 <code>id_rsa</code> 与 <code>id_rsa_pub</code> 则说明已经有一对密钥。</li>
</ul>
</li>
</ul>
<ol start="2">
<li><strong>生成新的公钥,并命名为 <code>id_rsa_2</code> (保证与之前密钥文件名称不同即可)</strong></li>
</ol>
<ul>
<li style="list-style-type: none">
<ul>
<li><code> ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com"</code></li>
</ul>
</li>
</ul>
<ol start="3">
<li><strong>在 <code>.ssh</code> 文件夹下新建 <code>config</code> 文件并编辑,另不同 Host 实际映射到同一 <code>HostName</code>,但密钥文件不同。</strong></li>
</ol></div>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(255, 0, 0, 1)"><strong>
Host pc.github.com</strong></span>
HostName github.com
User git
IdentityFile </span>~/.ssh/<span style="color: rgba(0, 0, 0, 1)">id_rsa
# two
<span style="color: rgba(255, 0, 0, 1)"><strong>Host <strong>corporation</strong>.github.com</strong></span>
HostName github.com
User git
IdentityFile </span>~/.ssh/id_rsa_2</pre>
</div>
<p>这里有个坑需要注意:</p>
<p> 首先要确保这里的Host是不相同的,比如我关联自己的账号,host写成 pc.github.com;关联公司的账号,host写成 corporation.github.com</p>
<p> HostName写域名:我这里关联的两个账号都是github,如果公司使用的是gitee,那么换成gitee.com就可以。</p>
<p> IdentityFile写的就是对应的钥匙名称了。</p>
<p><strong> 4. 将生成的 <code>id_rsa.pub</code>,<code>id_rsa_2.pub</code>内容添加到对应的账号上。</strong></p>
<p><strong><img src="https://img2020.cnblogs.com/blog/1582414/202103/1582414-20210312141304119-1443709626.png"></strong></p>
<p> </p>
<p><strong><img src="https://img2020.cnblogs.com/blog/1582414/202103/1582414-20210312141315048-592057415.png"></strong></p>
<p> </p>
<p><img src="https://img2020.cnblogs.com/blog/1582414/202103/1582414-20210312141356663-134271693.png"></p>
<p><img src="https://img2020.cnblogs.com/blog/1582414/202103/1582414-20210312141446643-409108111.png"></p>
<p> </p>
<p><strong> 5. 测试 ssh 链接</strong></p>
<div class="cnblogs_code">
<pre>ssh -<span style="color: rgba(0, 0, 0, 1)">T git@</span><span style="color: rgba(255, 0, 0, 1)"><strong>pc.github.com</strong></span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)">ssh </span>-<span style="color: rgba(0, 0, 0, 1)">T git@</span><span style="color: rgba(255, 0, 0, 1)"><strong><strong>corporation</strong>.github.com</strong></span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)"># Hi IEIT</span>! You<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ve successfully authenticated, but GitHub does not provide shell access.</span> # 出现上边这句,表示链接成功</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>这里有个坑就是标红的地方与Host相同</strong></span></p>
<p><strong> 6. 取消全局 用户名/邮箱设置,并进入项目文件夹单独设置</strong></p>
<div class="cnblogs_code">
<pre># 取消全局 用户名/<span style="color: rgba(0, 0, 0, 1)">邮箱 配置
git config –</span><span style="color: rgba(0, 0, 255, 1)">global</span><span style="color: rgba(0, 0, 0, 1)"> –unset user.name
git config –</span><span style="color: rgba(0, 0, 255, 1)">global</span><span style="color: rgba(0, 0, 0, 1)"> –unset user.email
# 单独设置每个repo 用户名</span>/<span style="color: rgba(0, 0, 0, 1)">邮箱
git config user.email “xxxx@xx.com”
git config user.name “xxxx”</span></pre>
</div>
<p><strong> 7. 命令行进入项目目录,重建 origin (whatever 为相应项目地址)</strong></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">git remote rm origin
git remote add origin git@<span style="color: rgba(255, 0, 0, 1)"><strong>pc.github.com</strong></span>:whatever(这里关联自己账号)<br>或者:<br>git remote add origin git@<span style="color: rgba(255, 0, 0, 1)"><strong><strong>corporation</strong>.github.com</strong></span>:whatever (这里关联公司账号)</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"> <strong>这里有个坑就是标红的地方与Host相同</strong></span></p>
<p> 这样就可以将自己的密钥对应到不同账号了。</p>
<p> 然后就是正常的git操作,比如可以 push 测试一下</p>
<div class="cnblogs_code">
<pre>git push origin master</pre>
</div>
<p> 如果成功就OK啦。</p>
<p> 自己踩过的坑,记下来。</p>
</div><br><br>
来源:https://www.cnblogs.com/SupremeBoy/p/14523847.html
頁:
[1]