SSH配置如何实现多密钥共存,高效管理Git仓库

开发工具 潘老师 2小时前 4 ℃ (0)

日常开发中,不少小伙伴可能会同时使用多个代码托管平台,像GitHub和GitLab。但每个平台都需要配置密钥才能安全连接,要是不小心管理,就容易乱套。今天这篇文章,就手把手教大家怎么通过SSH配置,实现多密钥共存,轻松管理不同平台的仓库。

一、生成专属GitHub新密钥

要在GitHub和其他平台间实现多密钥共存,第一步就是给GitHub生成一把专属密钥。这里以生成ed25519类型的密钥为例,操作步骤如下:

  1. 打开终端:在电脑上找到Git Bash或者PowerShell工具,打开它们。这两个工具能帮我们在电脑上执行一些代码指令。
  2. 执行生成密钥指令:在打开的终端里输入下面这条指令:
ssh-keygen -t ed25519 -C "your_github_email@example.com"

这条指令的作用是,让系统按照ed25519加密类型,生成一对密钥,后面的邮箱地址就是用来标识这对密钥的,你得把它换成自己GitHub账号绑定的邮箱。
3. 设置密钥保存路径:输完上面的指令后,系统会提示你选择保存密钥的路径。默认路径可能会覆盖掉你之前为GitLab设置的密钥,所以一定要修改。比如,可以把路径改成:

C:\Users\chenwa2\ssh\github_id_ed25519

这里的路径是示例,你可以根据自己的实际情况进行调整,只要保证不跟其他密钥路径冲突就行。
4. 设置密钥密码(可选):接下来,系统还会让你设置一个密码。要是直接回车,那生成的密钥就没有密码,这样虽然方便,但安全性会降低。建议大家还是设置一个密码,加强密钥的安全性。

二、查看新生成的密钥

密钥生成好之后,会产生两个文件:

  1. 私钥:这是非常重要的文件,相当于一把私人钥匙,要好好保管。它的路径就是刚才设置的保存路径,比如:
C:\Users\chenwa2\ssh\github_id_ed25519
  1. 公钥:公钥可以理解为是一把公开的钥匙,用于和远程服务器进行通信验证。它的路径和私钥类似,只是文件名多了个.pub后缀,像这样:
C:\Users\chenwa2\ssh\github_id_ed25519.pub

三、把新公钥添加到GitHub

生成的公钥需要添加到GitHub平台上,这样GitHub才能识别你,允许你访问仓库。具体操作如下:

  1. 复制公钥内容:在终端里输入这条指令,就能查看并复制公钥的内容:
cat C:\Users\chenwa2\ssh\github_id_ed25519.pub

公钥内容一般是以ssh-ed25519 AAA...开头的一长串字符,一定要完整复制。
2. 添加公钥到GitHub
– 登录自己的GitHub账号。
– 点击右上角头像,选择“Settings”。
– 在左侧菜单里找到“SSH and GPG keys”选项,点击它。
– 接着点击“New SSH key”按钮。
– 在“Title”栏,你可以自定义一个名字,方便自己识别,比如“My GitHub Key”。
– 在“Key”栏,粘贴刚才复制的公钥内容,最后点击“Add SSH key”按钮就大功告成啦。

四、配置SSH实现多密钥管理

为了让系统知道在访问不同平台时该用哪把密钥,我们还得配置一下SSH。在C:\Users\chenwa2\ssh目录下,有一个没有后缀名的config文件(如果没有就新建一个),可以用VS Code或者Notepad++这样的工具打开编辑,在里面添加以下内容:

# GitLab配置(使用原有密钥)
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile C:\Users\chenwa2\ssh\id_ed25519
  IdentitiesOnly yes

# GitHub配置(使用新密钥)
Host github.com
  HostName github.com
  User git
  IdentityFile C:\Users\chenwa2\ssh\github_id_ed25519
  IdentitiesOnly yes

这段配置的意思是,当我们访问GitLab时,系统会使用C:\Users\chenwa2\ssh\id_ed25519这把密钥;访问GitHub时,就会使用新生成的C:\Users\chenwa2\ssh\github_id_ed25519密钥。

五、测试GitHub连接

配置好之后,我们来检验一下是不是真的成功了。在终端输入这条指令:

ssh -T git@github.com

如果一切正常,会出现类似Hi your_github_username! You've successfully authenticated...这样的提示,说明你已经成功连接到GitHub啦。要是没成功,就得检查一下前面的步骤是不是哪里出了问题。

六、使用新密钥克隆或关联仓库

现在,我们就可以用新密钥来操作GitHub仓库了。

  1. 克隆新仓库:如果想从GitHub上克隆一个新仓库,在终端输入下面的指令就行,记得把“用户名”和“仓库名”换成实际的:
git clone git@github.com:用户名/仓库名.git
  1. 修改现有仓库远程地址:要是之前用HTTPS方式关联的仓库,现在想用新密钥关联,也没问题。在终端执行这条指令:
git remote set-url origin git@github.com:用户名/仓库名.git

七、操作过程中的关键注意事项

  1. 密钥共存规则:按照前面的步骤设置好之后,GitLab会继续使用原来的id_ed25519密钥,而GitHub则使用新生成的github_id_ed25519密钥,千万不要搞混。
  2. 路径分隔符:在Windows系统下,路径的分隔符可以用双反斜杠,也可以用正斜杠。文章里的示例已经适配好了,大家操作的时候注意别写错就行。
  3. 权限问题:私钥文件非常重要,不能让别人随便读取。在Windows系统下,可以用下面这两条指令来设置权限:
icacls C:\Users\chenwa2\ssh\github_id_ed25519 /inheritance:r
icacls C:\Users\chenwa2\ssh\github_id_ed25519 /grant:r "%USERNAME%":"R"

这两条指令能保证只有你自己的用户账号有读取私钥文件的权限,让你的密钥更安全。

按照上面这些步骤操作下来,你就能同时安全地用旧密钥管理GitLab仓库,用新密钥管理GitHub仓库,赶紧动手试试吧!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/tool/18104.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】