$ unset HISTFILE
$ cat something | openssl enc -e -aes256 > encrypted-something
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
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, é?)
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.
$ 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
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;