Как я могу зашифровать tar-файл, пока он не создан

Я нашел следующую функцию где-то в Интернете и использовал ее с большим эффектом. Поместите это в свой ~/.bashrc:

hgrep () { 
    history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}

Теперь перезагрузите свою оболочку: exec bash. Теперь у вас есть новая команда, которую вы можете использовать так:

hgrep ssh

Он покажет вам список совпадающих команд из вашей истории. Для запуска команды введите !, а затем номер команды. Вот пример:

~:$ hgrep scp
  207  tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
  421  tn scp scott-laptop __HOST__:Scott\ Severance.asc .
  422  tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
  468  tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
  469  tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
  470  scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207

Мне нравится этот подход лучше, чем Ctrl + R, потому что он позволяет гораздо более гибкий поиск, и я могу сразу увидеть несколько результатов.

3
задан 6 December 2017 в 14:09

2 ответа

OpenSSL для этой цели несколько вредна, прежде всего вам нужно будет дать команде фразу, чтобы впоследствии расшифровать ваши резервные данные. Тогда этот пароль мог быть прочитан в журнальных файлах, и только в тех случаях, когда безопасность не вызывает беспокойства, я полагаю, что ваша проблема заключается в том, что архивы надежно упакованы. Поэтому я советую использовать GPG для шифрования. Вы можете использовать, как это сделано в командах ниже gpg (на самом деле это GPG2 на более новых установках Ubuntu) или gpg2 (который необходимо установить сначала на старых установках Ubuntu, просто измените команду ниже на gpg2). Смотрите также: Генерация ключей: Различия между GnuPG classic, stable, modern?. [! ​​D0]

Для этого вам нужно сначала создать gpg-ключ со следующей командой:

gpg --gen-key

Вы будет запрашиваться ваше «Настоящее имя», которое может быть любым именем и вашим адресом электронной почты (лучше всего использовать одно имя без пробелов, см. ниже, как выглядит этот вывод). Затем вас спросят, правильно ли указана ваша информация, которую вы должны подтвердить с помощью «o», если это так.

$ gpg --gen-key gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-gen-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: Videonauth Email address: videonauth@example.com You selected this USER-ID: "Videonauth <videonauth@example.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? o

После этого вам будет предложено указать пароль для защиты ключа от GUI где вам нужно дважды ввести пароль, чтобы убедиться, что он правильный. Вы должны помнить этот пароль, так как его единственный способ получить ваши файлы расшифрованы позже.

Выход продолжается следующим образом:

We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key 338E09237C58EFA0 marked as ultimately trusted gpg: revocation certificate stored as '/home/videonauth/.gnupg/openpgp-revocs.d/891E441008DE443C53B44AB2338E09237C58EFA0.rev' public and secret key created and signed. pub rsa2048 2017-12-06 [SC] 891E441008DE443C53B44AB2338E09237C58EFA0 uid Videonauth <videonauth@example.com> sub rsa2048 2017-12-06 [E]

Теперь это хорошая идея для резервного копирования ваш вновь созданный ключ в файл, который вы должны хранить на USB-Stick, который вы можете хранить в ящике и т. д., чтобы у вас был доступ к этому ключу, если вам нужно настроить новую систему и хотите импортировать свой ключ. Следующие команды создадут резервную копию ваших ключей и важных битов, которые затем можно найти в ~/Download.

Создать общий сертификат отзыва: # generate a copy of the revoke certificate # you need the key ID for this which you can find in # the before output. In this example this would be # 891E441008DE443C53B44AB2338E09237C58EFA0 gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0 Это даст вам следующее диалоговое окно, которое я заполнил для примера: $ gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0 sec rsa2048/338E09237C58EFA0 2017-12-06 Videonauth <videonauth@example.com> Create a revocation certificate for this key? (y/N) y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 0 Enter an optional description; end it with an empty line: > Example Reason > Reason for revocation: No reason specified Example Reason Is this okay? (y/N) y ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others! Создайте копию открытого ключа: # This will create a copy of your public key gpg -o ~/Download/key-public.gpg --export 891E441008DE443C53B44AB2338E09237C58EFA0 Создайте копию своего закрытого ключа: # This will create a copy of your private key gpg -o ~/Download/key-private.gpg --export-secret-keys 891E441008DE443C53B44AB2338E09237C58EFA0

Чтобы использовать gpg с открытым ключом, вам необходимо импортировать общедоступный ключ ключевой файл на вашем сервере:

gpg --import key-public.gpg

Давайте начнем с создания правильной строки сначала и тестирования шифрования и дешифрования, чтобы убедиться, что дешифрование будет работать до того, как вы поместите его в crontab или скрипты. Со всем вышесказанным вы можете теперь генерировать непосредственно зашифрованные архивы с помощью следующей команды (вам нужно изменить имя пользователя в соответствии с «настоящим именем», с которым вы создали свой ключ).

tar -cv <directory-to-archive> | gpg -e -r Videonauth -o backup.tar.gpg

Это создает зашифрованный файл, не создавая заранее незашифрованный файл, чтобы его расшифровать, вам нужно поместить файл на свой компьютер, где у вас есть секретный ключ в вашем ключевом ключе, и выполните следующие действия:

gpg -d backup.tar.gpg | tar -xv

Вам будет предложено ввести ваш ключевой пароль, который вы должны предоставить, и это распакует файл backup.tar.gpg на вашем hdd.

Конечно, это может также использоваться для создания сжатых архивов tar, если вы хотите сделайте это, просто измените команды tar в приведенных выше строках соответственно. Для дальнейшего чтения см. [D1] Генерация ключей: Различия между GnuPG classic, stable, modern? и man tar.

Вы можете поместить эти команды непосредственно в свой crontab или создать для них скрипты.

3
ответ дан 18 July 2018 в 01:52

OpenSSL для этой цели несколько вредна, прежде всего вам нужно будет дать команде фразу, чтобы впоследствии расшифровать ваши резервные данные. Тогда этот пароль мог быть прочитан в журнальных файлах, и только в тех случаях, когда безопасность не вызывает беспокойства, я полагаю, что ваша проблема заключается в том, что архивы надежно упакованы. Поэтому я советую использовать GPG для шифрования. Вы можете использовать, как это сделано в командах ниже gpg (на самом деле это GPG2 на более новых установках Ubuntu) или gpg2 (который необходимо установить сначала на старых установках Ubuntu, просто измените команду ниже на gpg2). Смотрите также: Генерация ключей: Различия между GnuPG classic, stable, modern?. [! ​​D0]

Для этого вам нужно сначала создать gpg-ключ со следующей командой:

gpg --gen-key

Вы будет запрашиваться ваше «Настоящее имя», которое может быть любым именем и вашим адресом электронной почты (лучше всего использовать одно имя без пробелов, см. ниже, как выглядит этот вывод). Затем вас спросят, правильно ли указана ваша информация, которую вы должны подтвердить с помощью «o», если это так.

$ gpg --gen-key gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-gen-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: Videonauth Email address: videonauth@example.com You selected this USER-ID: "Videonauth <videonauth@example.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? o

После этого вам будет предложено указать пароль для защиты ключа от GUI где вам нужно дважды ввести пароль, чтобы убедиться, что он правильный. Вы должны помнить этот пароль, так как его единственный способ получить ваши файлы расшифрованы позже.

Выход продолжается следующим образом:

We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key 338E09237C58EFA0 marked as ultimately trusted gpg: revocation certificate stored as '/home/videonauth/.gnupg/openpgp-revocs.d/891E441008DE443C53B44AB2338E09237C58EFA0.rev' public and secret key created and signed. pub rsa2048 2017-12-06 [SC] 891E441008DE443C53B44AB2338E09237C58EFA0 uid Videonauth <videonauth@example.com> sub rsa2048 2017-12-06 [E]

Теперь это хорошая идея для резервного копирования ваш вновь созданный ключ в файл, который вы должны хранить на USB-Stick, который вы можете хранить в ящике и т. д., чтобы у вас был доступ к этому ключу, если вам нужно настроить новую систему и хотите импортировать свой ключ. Следующие команды создадут резервную копию ваших ключей и важных битов, которые затем можно найти в ~/Download.

Создать общий сертификат отзыва: # generate a copy of the revoke certificate # you need the key ID for this which you can find in # the before output. In this example this would be # 891E441008DE443C53B44AB2338E09237C58EFA0 gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0 Это даст вам следующее диалоговое окно, которое я заполнил для примера: $ gpg -o ~/Download/key-revocation-cert.asc --gen-revoke 891E441008DE443C53B44AB2338E09237C58EFA0 sec rsa2048/338E09237C58EFA0 2017-12-06 Videonauth <videonauth@example.com> Create a revocation certificate for this key? (y/N) y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 0 Enter an optional description; end it with an empty line: > Example Reason > Reason for revocation: No reason specified Example Reason Is this okay? (y/N) y ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others! Создайте копию открытого ключа: # This will create a copy of your public key gpg -o ~/Download/key-public.gpg --export 891E441008DE443C53B44AB2338E09237C58EFA0 Создайте копию своего закрытого ключа: # This will create a copy of your private key gpg -o ~/Download/key-private.gpg --export-secret-keys 891E441008DE443C53B44AB2338E09237C58EFA0

Чтобы использовать gpg с открытым ключом, вам необходимо импортировать общедоступный ключ ключевой файл на вашем сервере:

gpg --import key-public.gpg

Давайте начнем с создания правильной строки сначала и тестирования шифрования и дешифрования, чтобы убедиться, что дешифрование будет работать до того, как вы поместите его в crontab или скрипты. Со всем вышесказанным вы можете теперь генерировать непосредственно зашифрованные архивы с помощью следующей команды (вам нужно изменить имя пользователя в соответствии с «настоящим именем», с которым вы создали свой ключ).

tar -cv <directory-to-archive> | gpg -e -r Videonauth -o backup.tar.gpg

Это создает зашифрованный файл, не создавая заранее незашифрованный файл, чтобы его расшифровать, вам нужно поместить файл на свой компьютер, где у вас есть секретный ключ в вашем ключевом ключе, и выполните следующие действия:

gpg -d backup.tar.gpg | tar -xv

Вам будет предложено ввести ваш ключевой пароль, который вы должны предоставить, и это распакует файл backup.tar.gpg на вашем hdd.

Конечно, это может также использоваться для создания сжатых архивов tar, если вы хотите сделайте это, просто измените команды tar в приведенных выше строках соответственно. Для дальнейшего чтения см. [D1] Генерация ключей: Различия между GnuPG classic, stable, modern? и man tar.

Вы можете поместить эти команды непосредственно в свой crontab или создать для них скрипты.

3
ответ дан 24 July 2018 в 17:28

Другие вопросы по тегам:

Похожие вопросы: