encryption - 将单行 RSA 私有 ssh 密钥转换为多行
问题描述
我有这些已转换为单行等效项的私钥。
这些钥匙很多。
所以我决定花一些时间写一个脚本来转换。
这并没有产生太大的影响。
-----BEGIN RSA PRIVATE KEY----pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= -----END RSA PRIVATE KEY-----
我在用echo ~/.ssh/id_rsa | tr " " "\n"
这将返回:
-----BEGIN
RSA
PRIVATE
KEY-----
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
-----END
RSA
PRIVATE
KEY-----
我一直在试图找出将其恢复为正确格式的最佳方法。
解决方案
假设一个标准 RSA 私钥刚刚删除了换行符,几个sed
替换项将使您恢复到原始格式:
sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&\n/"\
-e "s/-----END RSA PRIVATE KEY-----/\n&/"\
-e "s/\S\{64\}/&\n/g"\
~/.ssh/id_rsa
标准密钥格式要求BEGIN
andEND
语句位于单独的行上,并且 base64 编码的密钥格式为 64 列。上面的命令会让你到达那里。
推荐阅读
- javascript - 在对非 React 项目进行单元测试时,如何在 Jest 中设置/更改输入字段的值?
- android - Android LinearLayout 在实际设备上看起来不一样
- sql - SQL Merge 只插入行,不更新
- c - 使用makefile时,找到了linux头文件,但是当调用头文件中的函数时,它说它们是隐式声明的
- c - 如何在缓冲区 c 中拆分令牌?
- python - 如何使用opencv从python中的图像中找到矩形的坐标?
- android - 在 Android 设备上使用 Unity 的 Admob 广告
- objective-c - 在 Swift 中使用 Objective-C typedef void
- node.js - SELECT FROM sqlite_master db 查询返回未定义
- gradle - 每个工具链的 Gradle 本机库