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

如果key存在,会有 id_rsa 和 id_rsa.pub 可以直接将 key 复制到远程 GitHub 上。

如果 key 不存在,生成 key

在命令行中输入:

ssh-keygen -t rsa -C 'your_email@example.com 默认生成一个

密码,名称什么的都一路回车就OK了

将公有 key(id_rsa.pub) 复制到远程 GitHub 里,可以给你的 key 起一个名字

如果 id_rsa.pub 文件找不到,可以在终端中使用 open ~/.ssh ,打开 ssh 文件,可以看到 id_rsa , id_rsa.pub 文件;也可以在前往中终端输入 ~/.ssh 来查看是否存在 id_rsa.pub 文件

在 ~/.ssh/ 目录会生成 id-rsa 和 id-rsa.pub``私钥 和 公钥 。

在 ~/.ssh/ 目录会生成 github-rsa和github-rsa.pub私钥和公钥 。

如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以先执行命令:

然后再运行ssh-add命令。

首先先来了解一下git的四种传输协议:本地、ssh、git和http,http协议应该说是最常见的一种,因为简单,以下是各个协议的优点与缺点:

地址: https://git-scm.com/downloads

初次使用git的用户要使用git协议大概需要三个步骤:

生成密钥对

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,生成密钥对:公钥和私钥,一般在~/.ssh 目录下(不管什么系统)

首先就先查看你的本地是否存在,可以自己创建目录:

ssh 目录都没有,可以用 ssh-keygen 来创建

保存文件名,然后输入密码,最后密钥对就生成啦~

ssh

ssh-agent bash //开启ssh代理

ssh-add key-file//添加ssh key文件

每次重启机器都执行一下,或者下个sourceTree/Tortoisegit来管理git项目

设置远程仓库

登陆你的gitlab帐户。点击你的头像,然后 Settings ->SSH keys

git的 remote url 修改为git协议

sourceTree/Tortoisegit


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存