Git配置多个SSH-Key(在一台电脑上,如何配置多个SSH Key?多个用户身份)

Git配置多个SSH-Key(在一台电脑上,如何配置多个SSH Key?多个用户身份),第1张

一般情况下,我们只会生成一个SSH Key,名字叫id_rsa,然后提交到多个不同的网站(如:GitHub、DevCloud、Gitee、GitLab)。

eg:尝试给Github配一个ssh。首先需要做的就是在命令行中输入以下指令

复制id_rsa.pub到对应的Git服务器即可。

但是也存在另一种需要,我们在同一个网站上,注册了两个或者多个用户名,通常网站不会允许我们为这两个用户名,配置同一个SSH Key,这时候就会有些麻烦。

a. 一个gitee,用于A项目的一些开发活动;

b. 一个github,用于B项目的一些开发活动;

c. 一个gitlab,用于C项目的一些开发活动;

针对不同的账户,生成一个不同用途的SSH-Key,然后进行相关的配置即可。

下面以mac 设备为例:

1.生成对应的SSH-Key:

生成一个gitee用的SSH-Key

生成一个github用的SSH-Key

生成一个gitlab用的SSH-Key

2.在 ~/.ssh 目录下新建一个config文件(终端:touch config),添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

3.然后进入 ~/.ssh ,拷贝不同的xxx_id_rsa.pub到不同的服务器进行配置,eg:拷贝 github_id_rsa.pub 内容,然后,进入Github,在Your profile里,点击左边SSH keys,再在右边点击Add SSH key按钮,如图:

其中,Title随便填,将id_rsa.pub里的内容复制到Key中,点击下方的Add key按钮。

4.用ssh命令分别测试

这里以gitee为例,成功的话会返回下图内容:

github帐号添加SSH keys

1

生成 ssh keys

1、任意目录下右击鼠标选择Git Bash Here或者win+r输入cmd回车打开终端;

2、在改终端下输入命令:

ssh-keygen -t rsa -C "youname@example.com"

这时可以一路回车,不输入任何字符,将会在C:\Users\Administrator\.ssh下自动生成id_rsa和id_rsa.pub文件。

注意:双引号换成自己的邮箱,如果linux下遇到权限问题,只需在前面加上sudo

2

github添加SSH keys

将id_rsa.pub里面的内容复制下来,在github上的settings里面找到add keys,将其粘贴到key即可,title唯一即可随便填,建议写有意义的

具体过程如图:

3

测试

在控制台上测试一下,输入:

ssh -T git@github.com

只要看到最后一行Hi chenlianjiang! You've successfully authenticated, but GitHub does not provide shell access,说明验证成功了

END

gitlib帐号添加SSH keys

生成 ssh keys

这时候在生成ssh key时候要注意了这时一路回车,不输入任何字符在绑定gitlibng的ssh key时,会发现将github的ssh key覆盖了;不要着急,下面跟着我一起 *** 作。

打开终端,终端下输入命令:

ssh-keygen -t rsa -C "youname@example.com"

这时,给这个文件起一个名字, 比如叫C:\Users\Administrator\.ssh\ id_rsa_gitlib, 所以相应的也会生成一个 id_rsa_gitlib.pub 文件。

注意这里如果只输入文件名会在终端的当前目录下生成,拷贝到对应位置即可;

添加私钥

终端输入一下命令:

$ ssh-add ~/.ssh/id_rsa

$ ssh-add ~/.ssh/id_rsa_gitlib

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add

如果出现Could not open a connection to your authentication agent.错误提示先执行$ ssh-agent.exe bash,然后执行上面命令;

-D:删除ssh-agent中的所有密钥.

-d:从ssh-agent中的删除密钥

-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。

-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。

-L:显示ssh-agent中的公钥

-l:显示ssh-agent中的密钥

-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥

-X:对ssh-agent进行解锁

-x:对ssh-agent进行加锁

添加配置文件

在~/.ssh/目录下新建config文件,并添加如图所示内容:

gitlib添加SSH keys

将id_rsa_gitlib.pub里面的内容复制下来,在gitlib上的账户里面找到所示SSH keys,将其粘贴到key内容即可,Title唯一即可随便填,,点击添加需要输入登录密码;

具体过程如图:

测试

在控制台上测试一下,输入:

ssh -T git@域名

只要看到最后一行Welcome to GitLab, chenlj!,说明验证成功了

生成两个key

生成两个key后,添加到对应服务器的 ssh kyes管理设置 中。

本地添加私钥

本地添加私钥名命令ssh-add ~/.ssh/Your Key Name,如果出现“Could not open a connection to your authentication agent”的问题,可以执行命令ssh-agent bash,再运行添加命令。另外,可用通过

3.一点说明

以上的我采用的是oschina的码云和github的两种kye的结合体,其中每段最后的IdentityFile跟着是你自己ssh key的名字,不要搞错了。

最后就是测试咯

oschina的测试方法ssh -T git@git.oschina.net;成功收到的回复为“Welcome to Git@OSC,‘Your Name’ ”

github的测试方法ssh -T git@github.com成功收到的回复为”Hi ’Your Name‘ ! You’ve successfully authenticated, but GitHub does not provide shell access.“

借鉴文章

git 配置多个SSH-Key

管理git生成的多个ssh key

---------------------本文来自 来不及解释了快上车 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u012365926/article/details/52293036?utm_source=copy

这是我修改配置文件时的 *** 作:

1.在~/.ssh目录下新建一个config的文件

2.添加以下内容

结果出现报错:

问题原因

~/.ssh/config文件缩进有问题

解决方案

检查该配置文件,把每一行配置前的空格都去掉

需要注意的是,如果config文件中只配置一个host对应的账号的话,缩进是无所谓的,都可以正常使用。但是有多个配置的话,配在后面的账号就会受影响。所以都修改一下,不要有空格。

---------------------本文来自 庭然 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lili625/article/details/77833684?utm_source=copy

附我~/.ssh/config文件修改好后的例子:

3.添加私钥时发生如下错误

输出错误: Could not open a connection to your authentication agent

解决此问题的方法是执行下

然后再次执行ssh-add ~/.ssh/id_rsa就可以顺利执行了

http://outofmemory.cn/code-snippet/37443/git-ssh-add-.ssh-id_rsa-Could-not-open-a-connection-to-your-authentication-agent


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11869106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存