如何查看SSH加密私钥文件?
嗨,我来帮你解决这个问题!其实不用先把私钥解密成无密码版本,有直接查看明文的方法,而且不会改动你原来的加密私钥文件。
首先说下你之前用的ssh-keygen -e -f id_rsa为什么不对——这个命令的-e选项是用来导出公钥格式的,哪怕你指定的是私钥文件,它也只会提取里面附带的公钥部分输出,所以你看到的和id_rsa.pub内容一致是正常的,它本来就不是用来查看私钥明文的。
下面给你两个实用的方法,都能在输入密码后直接查看明文私钥:
查看带详细参数的明文私钥:用
openssl命令解密,它能直接处理SSH加密私钥的对称加密:openssl rsa -in id_rsa -text运行后输入你的私钥密码,就能看到完整的私钥信息,包括明文PEM格式的私钥块和密钥的各项参数。
只导出纯PEM格式私钥(适合复制到Github Actions Secrets):如果只需要最核心的私钥内容(就是开头
-----BEGIN RSA PRIVATE KEY-----、结尾-----END RSA PRIVATE KEY-----的部分),可以用简化版命令:openssl rsa -in id_rsa输入密码后,终端会直接输出纯净的明文私钥,你可以直接复制这段内容粘贴到Github Actions的Secrets里,非常方便。
另外补充一下:如果你用ssh-keygen -p改成空密码,确实能得到无加密的私钥文件,但这种方法会修改原文件,安全性不如上面的临时解密方式——毕竟明文私钥泄露风险很高,临时查看后就销毁输出记录才是更稳妥的做法。比如你可以用管道直接把输出复制到剪贴板(macOS用openssl rsa -in id_rsa | pbcopy,Linux可以用xclip代替pbcopy),这样终端里不会留下明文记录,更安全。
备注:内容来源于stack exchange,提问作者u936293

