Git SSH 密钥配置

博文目录


默认生成的 rsa密钥位置在 ~/.ssh,如 C:\Users\mrathena\.ssh. 各代码托管平台是可以使用同一个SSH密钥的,这样最方便,但是为了更安全也可以配置在不同的平台使用不同的密钥

单密钥方式

cmd 执行命令 ssh-keygen -t rsa -b 4096 -C "generic",-t type rsa,-b 位数 4096位,如果不用 -C 指定邮箱,则会生成一个默认的注释,该注释无关紧要,不影响验证

选项全部默认(一路回车),这样在 ~/.ssh 目录下将生成两个文件,分别是 id_rsa 和 id_rsa.pub,前者是私钥,后者是公钥,需要将公钥内容上传到各代码托管平台

然后 cmd 执行各平台对应的验证命令,如 github ssh -T [email protected],coding.net ssh -T [email protected],如果能给出一些包含你的信息的反馈提示,说明测试通过了,如果需要输入密码或者直接报权限拒绝,则说明配置有问题

20221021 补充内容

GitHub 安全策略更新

ERROR: You're using an RSA key with SHA-1,which is no longer allowed. Please use a newer client or a different key type.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
ssh-keygen --help
ssh-keygen -t ecdsa -b 521 -C "generic"

生成 id_ecdsa 和 ‘id_ecdsa.pub’,将后者内容上传到 GitHub,把 GitHub 上配置的已经不用了的旧 Key 删掉(不删好像不行),即可

私钥文件有用,IDE 工具和代码托管平台交互时用得到

多密钥方式

~/.ssh 目录下添加一个 config 文本文件,内容大概如下,Host 就是某个代码托管平台的SSH域名,IdentityFile就是指定该平台验证时使用的私钥,多密钥方式密钥对的生成方式和单密钥相比,只需要把保存目录修改一下,和config中的 IdentityFile 对应上就好了. 同时需要把默认路径下的 id_rsa 和 id_rsa.pub 移除. 用同样的验证方式确认配置正确

Host e.coding.net
  Preferredauthentications publickey
  IdentityFile ~/.ssh/coding.net.key
Host github.com
  Preferredauthentications publickey
  IdentityFile ~/.ssh/github.key

Tortoise Git 密钥的生成和配置

安装 TortoiseGit 后会捎带安装 PuTTYgen 程序,搜索 PuTTYgen 打开 PuTTY Key Generator 工具

在这里插入图片描述

确认好 Key 的类型和长度后,点击 Generate 生成全新的密钥对,这里以 ECDSA(nistp521) 为例

在这里插入图片描述

生成后,需要保存好(通常在 .ssh 目录)

  • Save public key: 将公钥上传到对应代码托管平台(旧 Key 删掉),公钥可通过 Load 私钥获得,所以可不保存
  • Save private key: 将私钥保存为 ecdsa.ppk 密钥文件(PuTTY Key Generator 不支持查看/保存文本私钥)

在使用 Tortoise Git 上传下载 git:// 链接的代码时,需要配置 PuTTY 私钥 ecdsa.ppk

也可以通过 ssh-keygen 命令生成公私钥文本文件. 然后通过上述工具的 Load 功能将私钥文本文件做成 .ppk 格式

相关文章

博文目录文章目录问题描述解决方案问题描述阿里云ECS, 系统切...
博文目录文章目录创建项目创建代码仓库完成工程代码并提交推...
下载CentOS官网CentOS下载CentOS-7-x86_64-DVD-2003.isoCent...
博文目录文章目录服务端客户端测试效果服务端配置到 nginx 反...
博文目录文章目录环境下载安装配置使用环境阿里云ECS(Aliyu...
博文目录文章目录环境下载安装配置使用环境阿里云ECS(Aliyu...