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

如今 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
在这里插入图片描述

填写标题,然后将 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 文件中配置的域名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要配置历史SSH key,你可以按照以下步骤进行操作: 1. 打开终端或命令提示符。 2. 检查是否已经存在SSH key。在终端运行以下命令:`ls ~/.ssh`。如果已经存在SSH key,你会看到一些以 `id_rsa` 或 `id_dsa` 开头的文件。 3. 如果你已经有一个SSH key,你可以跳过下一步,否则继续执行以下命令来生成一个新的SSH key:`ssh-keygen -t rsa -b 4096 -C "[email protected]"`。将 `[email protected]` 替换为你的电子邮件地址。 4. 当系统要求你选择保存SSH key的文件路径时,默认情况下按Enter键,将其保存在默认路径 `~/.ssh/id_rsa` 。如果你想选择其他路径,可以输入你希望保存的文件路径。 5. 接下来,系统会要求你输入一个密码来保护你的SSH key。你可以选择输入密码或者留空。如果留空,则表示在使用SSH key时不需要输入密码。 6. SSH key生成后,你可以使用以下命令列出SSH key的公钥:`cat ~/.ssh/id_rsa.pub`。 7. 复制公钥(以 `ssh-rsa` 开头的一长串字符)。 8. 登录到你的Git托管平(如GitHubGitLab等)并进入个人设置或配置页面。找到SSH key选项,并添加一个新的SSH key。 9. 在SSH key的输入框,粘贴之前复制的公钥并保存。 10. 现在你可以通过SSH协议克隆和访问存储库,而无需每次都输入用户名和密码。 这样,你就成功地配置了历史SSH key。每次使用Git进行操作时,都会自动使用你已配置的SSH key进行身份验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值