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为例,成功的话会返回下图内容:

生成 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唯一即可随便填,,点击添加需要输入登录密码;

具体过程如图:

5

测试

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

ssh -T git@域名

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存