默认生成的 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 格式
原文地址:https://blog.csdn.net/mrathena
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。