📚上班也想搞私活?你可能需要配置多个SSH

最近需要做一些自己的项目,仓库建立在了github上,但是平时公司的项目都是建立在gitlab上面的,一个ssh肯定是无法解决的,如果不搞定这个问题的话可能后面会遇到一些奇奇怪怪的问题,有可能在需要提交代码的时候无法提交,这样就坏大事了,那么直接看看ssh能不能同时支持github和gitlab两个仓库,那么我们需要用到两个ssh

问题的源头-同时存在github和gitlab项目

本地只设置了github的公钥,克隆gitlab的项目会出现报错

检查现有的 SSH 密钥

专门删除了ssh目录下的公钥和密钥来给大家做一下演示,git bash中输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥

上面这是没有生成ssh密钥的情况

默认情况下,GitHub 的一个支持的公钥的文件名是以下之一。

  • id_rsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub

以下是生成了ssh密钥的情况

具体细节参考 git常见问题

生成 SSH 密钥

git bash中输入 ssh-keygen -t ed25519 -C "your_email@example.com" 生成密钥

可以看到ssh目录生成了密钥和公钥,公钥是pub后缀的

SSH 密钥添加到github

打开你们的github在这地方添加公钥

key的内容是.pub后缀的ssh目录下的内容,用记事本打开,粘贴到key中即可

现在本地已经有私钥,公钥已经配置到远程的github上面了,需要测试下本地和远程的连接是否成功

测试链接

可以通过在终端输入 ssh -T git@github.com 来测试本地密钥是否正常工作

配置 ssh

如果出现 Hi ,则表示本地已经和远程的github建立链接,也能直接克隆项目了,让我们来试一试吧

到这里可以成功的克隆我们在远程的github项目了。

新建第二个ssh

新建第二个ssh的时候建议跟着我的步骤做,会比较简单,因为已经踩了很多坑

直接在ssh目录进入git bash

再执行上面的同样的命令来生成第二个密钥 ssh-keygen -t ed25519 -C "your_email@example.com 这时候会出现同名的报错,因为已经存在一个了

这里别急着回车!!!!
这里别急着回车!!!!
这里别急着回车!!!!

但我们仍然执行上面的密钥,当报错提示出现,我命名为lab_ed25519,这样两个密钥就不会重名,等输入重命名后就可以一直回车了。

看一下现在的ssh目录,已经存在两个密钥了。

继续到gitlab中重复公钥的配置即可

最后-配置config

在ssh目录下新建一个config,并且输入以下配置

这配置是告诉git,连接github.com和gitlab.com分别用两个不同的密钥去进行匹配

js 复制代码
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_ed25519

Host gitlab.com
HostName gitlab.com
IdentityFile ~/.ssh/lab_ed25519

🙏 感谢您花时间阅读这篇文章!如果觉得有趣或有收获,请关注我的更新,给个喜欢和分享。您的支持是我写作的最大动力!✍️🌟

往期好文推荐

相关推荐
kyriewen23 分钟前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz33 分钟前
Rust &‘static str浅析
java·前端·javascript·rust
IT_陈寒1 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱1 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端
Wang's Blog1 小时前
Go-Zero项目开发24: 基于Bitmap实现群聊消息已读未读
开发语言·后端·golang
zandy10112 小时前
衡石 Agentic BI的ReAct 推理框架在 Agentic BI 中的工程化实践
前端·javascript·react.js
罗超驿2 小时前
JavaEE进阶之路:从Web架构原理到HTML标签全解析
前端·html·web·javaee
西安小哥2 小时前
从前端到AI工程师:一场跨越鸿沟的真实蜕变之旅
前端
Prince4182 小时前
侧边栏收起缩放适配方案
前端
Conan在掘金2 小时前
鸿蒙报错速查:struct 里嵌 namespace 声明就炸,根因 + 真解法
后端