Remover frase secreta da chave privada e definir o modo de arquivo específico

5

Se eu definir uma frase secreta na minha chave privada da seguinte forma:

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

e eu removo a senha assim:

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

então minha chave privada (insecure.key) acaba com um modo de arquivo de 644.

Como posso dizer ao openssl para criar insecure.key com um modo de arquivo de 600 (ou qualquer coisa)?

Eu sei que posso simplesmente chmodar o arquivo depois, mas e se eu perder a conexão? Depois, há uma chave privada no sistema de arquivos que qualquer um poderia ler.

    
por Ellis Percival 17.04.2015 / 12:40

3 respostas

10

Você pode tentar definir o umask antes de convertê-lo

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

Editar: Para não afetar outros arquivos no ambiente atual do shell pela configuração umask , execute-o em um subshell:

( umask 077; openssl rsa -in secure.key -out insecure.key )
    
por 17.04.2015 / 12:47
4

Uma maneira de fazer isso é criar um arquivo insecure.key em branco primeiro e chmod it.

touch insecure.key
chmod 600 insecure.key

O que torna o diretório parecido com

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

Em seguida, remova a frase secreta

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

O que torna o diretório parecido com

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

No entanto, isso é um pouco faff e seria melhor se houvesse um argumento para o openssl que faz isso de uma só vez.

    
por 17.04.2015 / 12:47
3

Uma solução simples, porém mais simples, é chmodar um diretório e operar dentro dele.

    
por 17.04.2015 / 13:50