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 git@github.com, coding.net ssh -T git@e.coding.net, 如果能给出一些包含你的信息的反馈提示, 说明测试通过了, 如果需要输入密码或者直接报权限拒绝, 则说明配置有问题

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 格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值