使用SSH生成公私钥。


提示

在使用 .ssh生成公私钥之前需安装 SSH。

流程

以生成ED25519 SSH keys为例:
1、win + r 打开 ‘运行’ 对话框,输入cmd 打开 Windows 的命令提示符(Command Prompt)应用程序。
2、直接输入ssh-keygen -t ed25519 -C "<comment>",得到响应:

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\User/.ssh/id_ed25519):

该响应的意思是:生成的密钥对放在那个文件下面,他给了一个默认地址 C:\Users\User/.ssh/id_ed25519,如果使用默认地址直接回车就行,如果不使用默认地址可以自行在后面添加地址列如:

Enter file in which to save the key (C:\Users\User/.ssh/id_ed25519):D:\MySecretKey\id_ed25519

3、在完成上述操作后得到响应:

Enter passphrase (empty for no passphrase):

该响应的意思是:提示你输入密码短语(passphrase)时,你可以选择输入一个密码短语来保护生成的私钥文件。如果你希望在私钥上添加密码短语,你可以输入你所需的密码短语并按回车键。如果你不想使用密码短语,直接按回车键以为空白密码短语继续。

tips:在输入时我的是不会显示出来的,但放心,之后会有一个确认密码短语的响应,再之后继续输入一下就能确定是否使用上了密码短语。如下:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

4、最后得到如下响应:

Your identification has been saved in C:\Users\User\my_secret_key\id_ed25519
Your public key has been saved in C:\Users\User\my_secret_key\id_ed25519.pub
The key fingerprint is:
SHA256:ZOYTzA5wKNF+sqg6INhiQVY2s+bXHwO6UKH5thcT5vU <comment>
The key's randomart image is:
+--[ED25519 256]--+
|  oB.o.          |
| oo Oo.o         |
|o  B ..+B.       |
| .o = *B+..      |
|...+ O =So E     |
|=.o = o +.o      |
|+o   o . .       |
|o     .          |
|o.               |
+----[SHA256]-----+

其中说明,公钥在id_ed25519.pub文件中,私钥在id_ed25519文件中。

密钥算法扩展

默认情况下,Linux 和 macOS 系统上的 SSH 密钥存储在用户的主目录中的.ssh/子目录中,下表包括每种 SSH 密钥算法的默认文件名:

算法公钥私钥
ED25519(首选)id_ed25519.pubid_ed25519
RSA(至少 2048 位密钥大小)id_rsa.pubid_rsa
DSA(已弃用)id_dsa.pubid_dsa
ECDSAid_ecdsa.pubid_ecdsa.pub

本人所知的各密钥生成命令

ED25519
Practical Cryptography With Go 一书中表明 ED25519 密钥比 RSA 密钥更为安全。
2014年 OpenSSH 6.5 引入 ED25519 SSH 密钥后,当前任何操作系统都可用使用这种密钥。

ssh-keygen -t ed25519 -C "<comment>" 

-C(例如带引号注释的电子邮件地址)是标记 SSH 密钥的可选方法。

**RSA **
如果使用 RSA 密钥生成 SSH 密钥,则建议至少使用 2048 位的密钥大小. 默认情况下, ssh-keygen命令创建一个 1024 位 RSA 密钥.
可以使用以下命令创建和配置 RSA 密钥,如果需要,可以生成建议的最小密钥大小2048:

ssh-keygen -t rsa -b 2048 -C "email@example.com" 

ECDSA

ssh-keygen ecdsa -C "<comment>" 

小结

无论是创建ED25519还是创建RSA密钥,您都从ssh-keygen命令开始。此时,您将在命令行中看到以下消息(以 ED25519 密钥为例):

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): 

如果您还没有 SSH 密钥对并且也没有生成部署密钥 ,您可以按照系统提示的建议选择 SSH 密钥存储的文件和目录,SSH 客户端将使用默认配置来生成您的 SSH 密钥。
当然,您也可以将新生成的 SSH 密钥保存在其他位置。您可以选择要分配的目录和文件名,您还可以为专用的特定主机 生成SSH 密钥。
在选择 SSH 密钥的保存路径后,您可以为 SSH 密钥设置密码 :

Enter passphrase (empty for no passphrase):
Enter same passphrase again: 

如果成功,您将看到有关ssh-keygen命令将标识和私钥保存在何处的确认信息。
如有需要,您也可以使用以下命令更新密码

ssh-keygen -p -f /path/to/ssh_key 

OpenSSH 6.5 ~ 7.8 的 RSA 密钥

在 OpenSSH 7.8 之前,RSA 密钥的默认公共密钥指纹基于 MD5,因此并不安全。
如果您的 OpenSSH 版本介于 6.5 至 7.8(含)之间,请使用-o选项运行ssh-keygen ,以更安全的 OpenSSH 格式保存您的 SSH 私钥。
如果您已经具有可用于 GitCode 的 RSA SSH 密钥,请考虑对其进行升级以使用更安全的密码加密格式。 您可以使用以下命令进行操作:

ssh-keygen -o -f ~/.ssh/id_rsa 

或者,您可以使用以下命令以更安全的加密格式生成新的 RSA 密钥:

ssh-keygen -o -t rsa -b 4096 -C "email@example.com" 

注意: ED25519 已将密钥加密为更安全的 OpenSSH 格式。

遇到的问题

此处用于统计遇到的问题,并在解决后给出解决方案

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值