如果我在我的私钥上设置密码,如下所示:
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 目录并在其中进行操作。