window环境下为git配置多个SSH密钥

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baijunzhijiang_01/article/details/51524759

使用情境:当你需要一个git管理你的公司的项目gitlab,另一个git管理你的gitHub的时候,你会发现新建一个ssh 会覆盖掉原来的ssh,并导致原来的失效。以下直接上干活:

新建一个git ssh

  • 设置公司对应的Git的user name和email:
$ git config --global user.name "wangzhicheng"
$ git config --global user.email "[email protected]"
  • 生成ssh key过程
ssh-keygen -t rsa -c/Users/baiju/.ssh/id_rsa_gitlab

然后三个回车,会生成

Your identification has been saved in /c/Users/baiju/.ssh/id_rsa_gitHub.
Your public key has been saved in /c/Users/baiju/.ssh/id_rsa_gitHub.pub.
The key fingerprint is:
SHA256:OixK6dUuiB+L2jUARjfnqqNLwEVeT7ZEYX0MUJ/gAv0 baiju@长城
The key's randomart image is:
+---[RSA 2048]----+
| . + +oO=+o      |
|. + = B.o.oo.    |
|.. o . +...o     |
|o.. .   .E       |
|....    S        |
|. .o o .         |
| =+.= =          |
|+=o*.+ .         |
|*o*  ..          |
+----[SHA256]-----+
  • 添加密钥到ssh:ssh-add 文件名

关联多个ssh key

  • 使用上述的方法创建gitHub对应的公钥和私钥
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/baiju/.ssh/id_rsa): /c/Users/baij/.ssh/id_rsa_gitHub   //此处为文件名
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/baiju/.ssh/id_rsa_gitHub.
Your public key has been saved in /c/Users/baiju/.ssh/id_rsa_gitHub.pub.
The key fingerprint is:
SHA256:s7cEn1/6BSOhBdYhM6xrbfYZK9GmNC/TTrMg6XkcbHg baiju@长城
The key's randomart image is:
+---[RSA 2048]----+
|         .*...   |
|         ..=.    |
|         .  o    |
|        .  o .   |
|        S=... o  |
|        +*E.+. o |
|       .+B*Xo+. .|
|       . =B=*= . |
|        o..==..  |
+----[SHA256]-----+
  • 查看系统ssh-key代理,执行如下命令
$ ssh-add -l
Could not open a connection to your authentication agent.
如果发现上面的提示,说明系统代理里没有任何key,执行如下操作
exec ssh-agent bash

如果系统已经有ssh-key 代理 ,执行下面的命令可以删除

$ ssh-add -D
  • 添加密钥到ssh-agent
$ ssh-add ~/.ssh/id_rsa_gitLab
$ ssh-add ~/.ssh/id_rsa_gitHub

依次执行上面三条shell 把两个私钥添加到 ssh-key 代理里面

  • 打开github ssh 管理页面把 对应的公钥提交保存到代码管理服务器 (.pub 结尾)
  • 在 .ssh 目录创建 config 配置文件,git下执行shell
touch config
  • 然后可以测试一下,是否连接成功
ssh -T git@github.com

如果失败,可以用这个方法

ssh -vT git@github.com

补充一下

如果之前有设置全局用户名和邮箱的话,需要unset一下

git config --global --unset user.name
git config --global --unset user.email

然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的repository下git config user.name "yourname"
git config user.email "youremail" 在自己的github的仓库在执行刚刚的命令一遍即可。

猜你喜欢

转载自blog.csdn.net/baijunzhijiang_01/article/details/51524759