美文网首页
同一台电脑配置不同的ssh key

同一台电脑配置不同的ssh key

作者: CoderCyl | 来源:发表于2021-07-04 16:14 被阅读0次

如今 Git 版本管理这么普及,那么我们除了在公司的账户除外,很可能还有一个属于自己的私人账户。如果是使用 ssh 的方式来拉取和提交代码,那么就要配置 ssh key 了。

如果公司账户和个人账户是属于不同的平台,那就比较简单一些,比如公司的是码云,而个人的是 github。下面就分别介绍一下 github + gitee 和 gitee + gitee 的配置。

一、github + gitee 的配置

1、生成公司账户 gitee ssh key

使用ssh-keygen -t rsa -C "用户名,一般是邮箱"命令生成 ssh key。

ssh-keygen -t rsa -C "company@aa.com"

回车,然后在下一步的提示中指定 ssh key 的路径和文件名。为了方便建议将终端路径 cd 切换到 .ssh 目录下再执行命令生成公私钥。这里指定名称为 id_rsa_company

指定了路径和名称后直接一直按回车,就生成了公司 gitee 账户的公私钥了。在 .ssh 目录下可以看到多了 2 个文件,一个是私钥 id_rsa_company,一个是公钥 id_rsa_company.pub,公钥用来添加到 github 或 gitee 网站中的。

2、将公钥添加到 gitee

[站外图片上传中...(image-1b86a8-1625386413618)]

填写标题,然后将 id_rsa_company.pub 中的内容复制到公钥下方的框中,点击确定验证后就可以添加成功了。

3、用同样的方式生成 github 的个人账户公私钥

ssh-keygen -t rsa -C "personal@bb.com"

指定名称为 id_rsa_personal,同样在 .ssh 目录中多了 id_rsa_personal 和 id_rsa_personal.pub 两个文件。

4、添加个人公钥到 github。这里就不再截图了。

5、配置 config 文件。

目录切换到 .ssh 目录中,打开 config目录(如果没有就新建),在 config 文件中配置以下内容

Host gitee.com # 别名,不一定非得是网站的域名
HostName gitee.com # 这里可能是你公司的域名,对应的修改即可
PreferredAuthentications publickey # 认证方式,公钥认证
IdentityFile ~/.ssh/id_rsa_company # 认证文件路径
User Panhoo1 # 用户名

Host github.com # 别名,不一定非得是网站的域名
HostName github.com # 这里可能是你公司的域名,对应的修改即可
PreferredAuthentications publickey # 认证方式,公钥认证
IdentityFile ~/.ssh/id_rsa_personal # 认证文件路径
User Panhoo2 # 用户名

6、验证是否配置成功

ssh -T git@gitee.com
ssh -T git@github.com

如果看到输出 Hi XXX! You've successfully,那就说明配置成功了。

在这配置文件中有一些细节需要注意到,在讲到 gitee + gitee 的配置方式时再讲。

7、添加代理

ssh-add ~/.ssh/id_rsa_company
ssh-add ~/.ssh/id_rsa_personal

8、拉取/推送代码

正常的使用git clone git@gitee.com:用户名/项目.git

二、gitee + gitee 的配置

gitee + gitee 比上面的配置稍微复杂一点,因为不同平台在查找对应配置的时候,根据域名就可以直接在 config 文件中找到,因为每份配置都是唯一的,很容易就查到了。

那么在公司和个人账户都是 gitee 的情况下,那就需要在 config 文件中将它们稍微区分一下了。这就要根据上面配置文件中的 Host 这个来区分了。

生成公私钥等步骤与上面一致,这里就省略了,假设所有生成的文件和上面一致。不同的是 config 文件的配置有点不太一样。

因为两个域名都是 gitee.com,所以就需要从上面提到的 Host 这个别名来区分了。

Host gitee.com # 别名,这里是使用域名
HostName gitee.com # 这里可能是你公司的域名,对应的修改即可
PreferredAuthentications publickey # 认证方式,公钥认证
IdentityFile ~/.ssh/id_rsa_company # 认证文件路径
User Panhoo1 # 用户名

Host gitee.personal.com # 别名,加以区分
HostName gitee.com # 这里可能是你公司的域名,对应的修改即可
PreferredAuthentications publickey # 认证方式,公钥认证
IdentityFile ~/.ssh/id_rsa_personal # 认证文件路径
User Panhoo2 # 用户名

上面 2 个配置的 Host 不一致,这样就区分了他们,不过在验证的时候也有些不同。

ssh -T git@gitee.com # 输出 Hi Panhoo1... 说明配置成功
ssh -T git@gitee.personal.com # 输出 HiPanhoo2... 说明配置成功

这里还有一个需要注意的点:

如果在验证的时候提示错误 load key ... invalid format类似的错误,可能需要修改一下 config 配置文件中的 IdentityFile,因为有些 Git 版本的不同造成些差异。

看看 IdentityFile 后面指定的公私钥路径有没有 .pub 后缀,有的话去掉,没有的话就加上试试。

在拉取/推送代码的配置中也和上面有稍微的不同,在一般的配置中,克隆代码直接使用

git clone git@gitee.com:用户名/项目.git

但是在 config 中指定了不同的 Host 后,这个源 URL 就有些不同了。

克隆例中公司项目命令

git clone git@gitee.com:用户名/项目

克隆例中个人项目命令

git clone git@gitee.personal.com:用户名/项目

通过对比可以看到,克隆命令中的域名是我们在 config 文件中配置的域名。

相关文章

  • 一台电脑配置多个ssh key

    一台电脑配置多个ssh key连接不同的仓库时,需要配置ssh config,进行 key和host的绑定。 co...

  • 同一台电脑配置不同的ssh key

    如今 Git 版本管理这么普及,那么我们除了在公司的账户除外,很可能还有一个属于自己的私人账户。如果是使用 ssh...

  • Git配置多个SSH-Key & python中git的使用

    一、配置多个SSH-Key 当前电脑已设置过了一个ssh-key,终端查看已配置的SSH-Key文件 cd ~/....

  • 同一台电脑配置多个ssh key

    遇到了这个问题,我们首先已经有了两个ssh key 比如我github用id_rsa,Coding用yunbao:...

  • SSH远程登陆

    本机需要配置多个ssh key 本机需要配置多个ssh key时,可以生成不同文件名的key。然后在~/.ssh目...

  • 一台电脑配置多个SSH-Key

    背景:因为我们github与公司的gitlab的账号一般不是同一个,所以需要在一台电脑配置多个SSH-Key 1....

  • git配置多个SSH-Key

    我们在日常工作中会遇到同一台服务器部署多个放在github上的应用,这样我们就需要配置不同的ssh-key对应不同...

  • Git 小白教程

    Git 的用法 一、配置SSH key 检查是否已存在 SSH Key 打开电脑终端,输入命令:ls -al ~/...

  • Mac OS 下配置多个 SSH Key

    大家在工作中可能会遇到需要在一台电脑上配置不同的 SSH Key 的情况,例如我们需要同时使用个人 Github ...

  • Mac OS 下配置多个 SSH Key

    大家在工作中可能会遇到需要在一台电脑上配置不同的 SSH Key 的情况,例如我们需要同时使用个人 Github ...

网友评论

      本文标题:同一台电脑配置不同的ssh key

      本文链接:https://www.haomeiwen.com/subject/xlzmultx.html