我需要为后端生成密钥对以发出 JWT 令牌。我使用的是 MacOS。
我在终端上尝试过:
ssh-keygen -t rsa
和 的路径/Users/john.brk/my_rsa
。
它生成my_rsa
和my_rsa.pub
。
当我检查公钥的内容时my_rsa.pub
,我注意到公钥最后使用了一个表示我的 MacBook 名称的字符串:
ssh-rsa AAAAB3N.........3iu76d john.brk@JohnsMBP
当我检查私钥时,我注意到有字符串显示OPENSSH PRIVATE KEY
:
-----BEGIN OPENSSH PRIVATE KEY-----
c2AlonYzaC0rjXktkjEAUAcABG1vamUBAAA
...
-----END OPENSSH PRIVATE KEY-----
我有两个问题:
对于公钥,我该如何生成以便我的笔记本电脑名称不被使用?
对于私钥,我如何生成像我们的其他服务密钥一样的密钥
-----BEGIN RSA PRIVATE KEY-----
(同样适用于结尾)
代替---BEGING OPENSSH PRIVATE KEY---
?
答案1
部分答案:
- ssh 密钥与 JWT 令牌完全无关。
- 您可以使用 ssh 密钥登录到运行后端的机器(如果该机器正在运行 ssh 服务器)
- JWT 令牌中使用了许多加密算法。如果你很幸运,你的 JWT 令牌将使用与你创建的 ssh 密钥相同的算法,但使用类似的东西要容易得多小步生成您的 JWT 密钥对。
对于公钥,我该如何生成以便我的笔记本电脑名称不被使用?
您可以使用公钥编辑文件并输入任何您喜欢的内容。但由于这是 ssh 密钥,而不是 JWT 密钥,因此它对您没有帮助。
对于私钥,我如何生成像我们的其他服务密钥一样的密钥
最简单的方法是使用适合该工作的工具(例如smallstep
,甚至openssl
)。但是,据我所知,ssh 生成的 RSA 密钥使用相同的格式,因此您可以尝试编辑该行。