Como executar comandos de criptografia no linux sem registro de histórico do shell

2

Eu quero criptografar algo sem registrar qualquer parte do comando shell para bash history. Eu não quero a senha ou qualquer nome de arquivo ou o comando para aparecer no histórico do shell. Como fazer isso usando o AES 256 com SHA2? (Eu acredito que esta é a configuração mais secreta hoje, é?)

    
por Guerlando OCs 30.10.2017 / 00:09

3 respostas

3
$ unset HISTFILE
$ cat something | openssl enc -e -aes256 > encrypted-something
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
    
por 30.10.2017 / 00:16
8

A melhor maneira de desativar o histórico temporariamente é iniciar um subshell com a variável de ambiente HISTSIZE definida como 0 :

HISTSIZE=0 $0
type your commands here
<ctrl-D>

O registro de histórico no seu shell de login original permanece inalterado após sair do subshell.

O $0 garante que você inicie o mesmo shell que está usando. Você poderia substituir $0 pelo caminho de qualquer shell, por exemplo: /bin/sh .

Isso funciona com os shells mais comuns, incluindo bash , ksh , zsh , dash . Eu acho que isso é um padrão POSIX.

Você também pode digitar exit para sair da subshell.

Exemplo

$ true 1
$ true 2
$ HISTSIZE=0 $0
$ true 3
$ true 4
$ exit
$ history 4
500  true 1
501  true 2
502  HISTSIZE=0 $0
503  history 4
    
por 30.10.2017 / 01:30
2

Se os nomes dos arquivos na linha de comando incomodarem você, você pode lê-los no terminal:

read infile; read outfile; cat $infile | openssl enc -e -aes256 > $outfile;
    
por 30.10.2017 / 00:59