微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 @R_273_4045@ion.
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 格式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐