Git SSH 密钥配置

博文目录

文章目录

  • 单密钥方式
    • 20221021 补充内容
  • 多密钥方式
  • Tortoise Git 密钥的生成和配置


默认生成的 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 工具

Git SSH 密钥配置_第1张图片

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

Git SSH 密钥配置_第2张图片

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

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

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

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

你可能感兴趣的:(开发工具,git,github,ssh,key)