从私钥中删除密码并设置特定文件模式

从私钥中删除密码并设置特定文件模式

如果我在我的私钥上设置密码,如下所示:

openssl rsa -des -in insecure.key -out secure.key

我删除了密码,如下所示:

openssl rsa -in secure.key -out insecure.key

那么我的私钥(insecure.key)最终的文件模式为 644。

我如何告诉 openssl 创建文件模式为 600(或其他)的 insecure.key?

我知道之后我可以简单地 chmod 文件,但是如果我失去连接怎么办?然后文件系统上有一个任何人都可以读取的私钥。

答案1

您可以尝试在转换之前设置umask

umask 077; openssl rsa -in secure.key -out insecure.key

编辑:为了不影响当前 shell 环境中的其他文件,请umask在子 shell 中执行该设置:

( umask 077; openssl rsa -in secure.key -out insecure.key )

答案2

一种方法是先创建一个空白的 insecure.key 文件并对其进行 chmod。

touch insecure.key
chmod 600 insecure.key

这使得目录看起来像

total 28
drwxr-xr-x  2 flyte flyte 4096 Apr 17 11:44 .
drwxr-xr-x 12 flyte flyte 4096 Apr 17 11:44 ..
-rw-------  1 flyte flyte    0 Apr 17 11:44 insecure.key
-rw-------  1 flyte flyte 1746 Apr 17 11:42 secure.key

然后删除密码

openssl rsa -in secure.key -out insecure.key

这使得目录看起来像

total 32
drwxr-xr-x  2 flyte flyte 4096 Apr 17 11:44 .
drwxr-xr-x 12 flyte flyte 4096 Apr 17 11:44 ..
-rw-------  1 flyte flyte 1679 Apr 17 11:45 insecure.key
-rw-------  1 flyte flyte 1746 Apr 17 11:42 secure.key

然而,这有点麻烦,如果 openssl 有一个参数可以一次性完成此操作,那就更好了。

答案3

一个简单但更简单的解决方案是 chmod 700 目录并在其中进行操作。

相关内容