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

新建user1、user2的SSH Key

#新建user1 SSH key:

$ cd ~/.ssh

# 切换到C:\Users\Administrator\.ssh

#ssh-keygen -t rsa -C "user1@email.com"

一路回车即可;

# 新建user2的SSH key

#ssh-keygen -t rsa -C "user2@email.com"

# 设置名称为Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): /c/Users/Administrator/.ssh/id_rsa_user2

具体演示过程如下图:

密钥添加到SSH agent中

因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:

ssh-add ~/.ssh/id_rsa_user2

如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:

ssh-agent bash

ssh-add ~/.ssh/id_rsa_user2

修改config文件

在~/.ssh目录下找到config文件,如果没有就创建:

touch config

然后修改我的config配置如下:

如果存在的话,其实就是往这个config中添加一个Host:

#建一个github别名,新建的帐号使用这个别名做克隆和更新

其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名如:github2,那么原地址 是:git@github.com:test/Mywork.git,替换后应该是:github2:test/Mywork.git.

打开新生成的~/.ssh/id_rsa_user2.pub文件,将里面的内容添加到GitHub后台。

第一个github帐号下的SSH Key中也要记得添加。

测试

$ ssh -T git@github.com

Hi chenlianjiang! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@github2

Hi 1047353200! You've successfully authenticated, but GitHub does not provide shell access.

应用

测试成功,尝试克隆1047353200账号下的远程仓库。如下:

$ git clone git@github2:1047353200/git-demo.git

先切换到 root 账户,添加 Key: su root rpm --import 为你的系统添加库: yum install 安装 kernel-ml 包: yum --enablerepo=elrepo-kernel install kernel-ml 重启: reboot 卸载 kernel 4.0命令:


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存