章
目
录
日常开发中,不少小伙伴可能会同时使用多个代码托管平台,像GitHub和GitLab。但每个平台都需要配置密钥才能安全连接,要是不小心管理,就容易乱套。今天这篇文章,就手把手教大家怎么通过SSH配置,实现多密钥共存,轻松管理不同平台的仓库。
一、生成专属GitHub新密钥
要在GitHub和其他平台间实现多密钥共存,第一步就是给GitHub生成一把专属密钥。这里以生成ed25519类型的密钥为例,操作步骤如下:
- 打开终端:在电脑上找到Git Bash或者PowerShell工具,打开它们。这两个工具能帮我们在电脑上执行一些代码指令。
- 执行生成密钥指令:在打开的终端里输入下面这条指令:
ssh-keygen -t ed25519 -C "your_github_email@example.com"
这条指令的作用是,让系统按照ed25519加密类型,生成一对密钥,后面的邮箱地址就是用来标识这对密钥的,你得把它换成自己GitHub账号绑定的邮箱。
3. 设置密钥保存路径:输完上面的指令后,系统会提示你选择保存密钥的路径。默认路径可能会覆盖掉你之前为GitLab设置的密钥,所以一定要修改。比如,可以把路径改成:
C:\Users\chenwa2\ssh\github_id_ed25519
这里的路径是示例,你可以根据自己的实际情况进行调整,只要保证不跟其他密钥路径冲突就行。
4. 设置密钥密码(可选):接下来,系统还会让你设置一个密码。要是直接回车,那生成的密钥就没有密码,这样虽然方便,但安全性会降低。建议大家还是设置一个密码,加强密钥的安全性。
二、查看新生成的密钥
密钥生成好之后,会产生两个文件:
- 私钥:这是非常重要的文件,相当于一把私人钥匙,要好好保管。它的路径就是刚才设置的保存路径,比如:
C:\Users\chenwa2\ssh\github_id_ed25519
- 公钥:公钥可以理解为是一把公开的钥匙,用于和远程服务器进行通信验证。它的路径和私钥类似,只是文件名多了个
.pub
后缀,像这样:
C:\Users\chenwa2\ssh\github_id_ed25519.pub
三、把新公钥添加到GitHub
生成的公钥需要添加到GitHub平台上,这样GitHub才能识别你,允许你访问仓库。具体操作如下:
- 复制公钥内容:在终端里输入这条指令,就能查看并复制公钥的内容:
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仓库了。
- 克隆新仓库:如果想从GitHub上克隆一个新仓库,在终端输入下面的指令就行,记得把“用户名”和“仓库名”换成实际的:
git clone git@github.com:用户名/仓库名.git
- 修改现有仓库远程地址:要是之前用HTTPS方式关联的仓库,现在想用新密钥关联,也没问题。在终端执行这条指令:
git remote set-url origin git@github.com:用户名/仓库名.git
七、操作过程中的关键注意事项
- 密钥共存规则:按照前面的步骤设置好之后,GitLab会继续使用原来的
id_ed25519
密钥,而GitHub则使用新生成的github_id_ed25519
密钥,千万不要搞混。 - 路径分隔符:在Windows系统下,路径的分隔符可以用双反斜杠,也可以用正斜杠。文章里的示例已经适配好了,大家操作的时候注意别写错就行。
- 权限问题:私钥文件非常重要,不能让别人随便读取。在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仓库,赶紧动手试试吧!