Моя ОС — Ubuntu 20.04.2 lts.
Я создаю архив tar из каталога noup1, который содержит файлы и подпапки, сtar cf no1.tar noup1
Зашифруйте его с помощью gpg -c no1.tar
. Теперь у меня есть no1.tar.gpg
архив.
Если я попытаюсь расшифровать его с помощью gpg -d no1.tar.gpg
, то в терминале появится множество волнистых символов, и это не сработает.
Если я просто использую gpg no1.tar.gpg
, без -d
флага, я получаю вывод «команда не была дана. Пытаюсь угадать ...»
gpg: WARNING: Kein Kommando angegeben. Versuche zu raten was gemeint ist ...
gpg: AES256 verschlüsselte Daten
gpg: Verschlüsselt mit einer Passphrase
и архив теперь не зашифрован. Так что это работает!Но как и почему?
С другой стороны, если я использую -d
флаг и передаю результат в tar, то все проходит успешно!
gpg -d no1.tar.gpg | tar xf -
Как создать сжатые зашифрованные архивы с помощью tar и gpg
Поэтому я задаюсь вопросом:
Что "угаданная команда" который был казнен?
Почему -d
флаг не работает, но работает, если его передать в tar, хотя во всех соответствующих руководствах предписывается расшифровывать архив tar с помощью , gpg -d <archive-name>
а не gpg <archive-name>
?
Возможно ли, что у меня отсутствуют какие-то пакеты или что-то не так с моей конфигурацией gpg?
решение1
согласностраницы руководствадля гпг,
-д
Расшифровать файл, указанный в командной строке (или STDIN, если файл не указан) и записать его в STDOUT (или файл, указанный с помощью --output). Если расшифрованный файл подписан, подпись также проверяется. Эта команда отличается от операции по умолчанию, так как она никогда не записывает в имя файла, которое включено в файл, и отклоняет файлы, которые не начинаются с зашифрованного сообщения.
Итак, -d работал нормально, но он расшифровывал файл в STDOUT, поэтому вы и увидели кучу мусорного вывода. Это закодированные данные для вашего файла .tar, так что неудивительно, что это бессмыслица.
если вы хотите, чтобы он расшифровывался в файл, а не в выходной поток оболочки, используйте --output <filename>
или перенаправьте вывод в файл.
Я полагаю (я не умею читать по-немецки), что когда вы запустили команду в файле, я предполагаю, что она выполнила эквивалент
gpg -d no1.tar.gpg --output no1.tar