提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 一、ssh是什么?
  • 二、生成条件
  • 三、生成步骤
  • 1.检查系统是否有.ssh文件夹
  • 2.生成多个ssh key
  • 3.配置 config 文件
  • 总结、



前言

一般来说,一台电脑默认只有一个私钥 id_rsa 和公钥 id_rsa.pub 。当我们需要在一台电脑上操作不同的 github 账号(或 gitlab、gitee、coding)就需要多个对应的ssh key,因为一个 github 账号只能建一个与账号名相同的仓库。


一、ssh是什么?

ssh是Secure Shell(安全外壳协议)的缩写,建立在应用层和传输层基础上的安全协议。为了便于访问github,要生成ssh公钥,这样就不用每一次访问github都要输入用户名和密码。简单来说就是方便我们拉取推送代码。

二、生成条件

1.本地安装 Git ,未安装用户可以点击 Git官网 进行下载
2.注册需要配置 ssh平 台的账号(Github,Gitee,Gitlab,Coding)

三、生成步骤

1.检查系统是否有.ssh文件夹

windows系统下一般是在 C:\Users\Administrator 目录下,如果没有手动新建 .ssh 文件夹。

ssh的私钥和公钥的 ssh 公钥私钥_github

2.生成多个ssh key

1.进入 .ssh 目录下,单机鼠标右键,选择 Git Bash here,打开 git bash:

ssh的私钥和公钥的 ssh 公钥私钥_ssh的私钥和公钥的_02


2.输入命令:ssh-keygen -t rsa -C "xxx@xxx.com" ,如图:

  • 引号中的内容是你在 github 上注册所使用的邮箱,点击确定。 提示:(以 github 为例)
  • ssh的私钥和公钥的 ssh 公钥私钥_git_03

  • 这里需要注意,该命令会默认生成为 id_rsa 的公钥和 id_rsa.pub 的私钥文件。为了防止后续生成别的 ssh 被覆盖,这里推荐手动修改文件名。如图,我这里修改为 github_id_rsa
  • ssh的私钥和公钥的 ssh 公钥私钥_ssh_04

  • 继续回车确定,会提示你设置密码和再次输入密码。为了简化操作,这里不建议设置密码,直接回车确定。
  • ssh的私钥和公钥的 ssh 公钥私钥_ssh的私钥和公钥的_05

  • 再次回车确定,看到如下样式,就说明 ssh 生成成功了,在 .ssh 文件夹会下看到 github_id_rsa 文件和 github_id_rsa.pub 文件。

    3.将生成的 key 添加到 github 账户中去:
  • 打开生成的 github_id_rsa.pub 文件,全选并复制内容;
  • 登录你的 github ,点击 右上角头像 —> Setttings –> SSH and GPG keys -->New SSH keys
  • Titile 随意起名, Key 中粘贴上刚刚拷贝的公钥;
  • 点击 Add SSH key ,就成功啦。



    4.测试: ssh -T git@github.com 出现如下字样就是设置成功了。

5.完成以上步骤就生成配置好了 github 的 ssh key,可以使用 ssh 方式克隆或者推送代码到 github 远程仓库。gitee 或 gitlab 或 coding 的生成方法也是如此,重复以上步骤即可

注意

  • 重复执行第二步时绑定邮箱时建议使用不同邮箱,方便区分。
  • 重复执行第三步时需要修改生成的文件名,防止覆盖。可以使用平台名作为前缀,如(github_id_rsa / gitee_id_rsa)

6.重复以上步骤后,在文件目录下会看到生成了多个 ssh key ,分别对应不同的代码托管平台。如图:

ssh的私钥和公钥的 ssh 公钥私钥_git_06

3.配置 config 文件

在.ssh文件夹中手动创建config文件或者输入命令touch config生成,并按下面的模板填写,该文件用于配置私钥对应的服务器。

# gitlab
Host gitlab.ylwnl.com   
HostName gitlab.xxx.com   
PreferredAuthentications publickey  
IdentityFile ~/.ssh/gitlab_id_rsa 

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa

配置说明:

  • Host:自定义别名,会影响git相关命令
  • HostName:真实的服务器地址(域名)
  • User:之前配置的用户名可以省略(xxx@xxx.com)
  • PreferredAuthentications:权限认证(publickey,password publickey,keyboard-interactive)一般直接设为publickey
  • IdentityFile:rsa文件地址

以上就是在同一电脑上配置多个 ssh key 的所有步骤了。

总结、

这篇文章是我基于自己搭建博客时的实践,可能还是没有总结得很完整,如果读者有遇到什么问题,欢迎留言讨论,共同学习。