Как запустить команды шифрования в Linux без ведения журнала истории оболочки
Я хочу зашифровать что-то, не регистрируя какую-либо часть команды оболочки для bash history. Я не хочу, чтобы пароль или какие-либо имена файлов или команды появлялись в истории оболочки. Как это сделать с помощью AES 256 с SHA2? (Я считаю, что это самая секретная конфигурация сегодня, не так ли?)
3 ответа
$ unset HISTFILE
$ cat something | openssl enc -e -aes256 > encrypted-something
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
Лучший способ временно отключить историю - запустить подоболочку с HISTSIZE
переменная окружения установлена в 0
:
HISTSIZE=0 $0
type your commands here
<ctrl-D>
Ведение журнала в исходной оболочке входа остается незатронутым после выхода из подоболочки.
$0
обеспечивает запуск той же оболочки, что и вы. Вы могли бы заменить $0
с путем к любой оболочке, например: /bin/sh
,
Это работает с большинством распространенных оболочек, включая bash
, ksh
, zsh
, dash
, Я думаю, что это стандарт POSIX.
Вы также можете ввести exit
выйти из подоболочки.
пример
$ 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
Если имена файлов в командной строке вас беспокоят, вы можете прочитать их из терминала:
read infile; read outfile; cat $infile | openssl enc -e -aes256 > $outfile;