rage(1) | General Commands Manual | rage(1) |
NAME
rage - Простой, безопасный и современный инструмент шифрования
SYNOPSIS
rage [-h|--help] [-V|--version] [--max-work-factor] [-o|--output] [-e|--encrypt] [-r|--recipient] [-R|--recipients-file] [-p|--passphrase] [-a|--armor] [-d|--decrypt] [-i|--identity] [-j ] [ВХОД]
DESCRIPTION
rage шифрует или расшифровывает ВХОД в ВЫХОД. Аргумент ВХОД необязателен и по умолчанию использует стандартный ввод. Может быть указан только один файл ВХОД. Если -o/--output не указан, ВЫХОД по умолчанию использует стандартный вывод.
Если указан -p/--passphrase, файл шифруется с паролем, запрашиваемым в интерактивном режиме. В противном случае он шифруется для одного или нескольких ПОЛУЧАТЕЛИ, указанных с помощью -r/--recipient или -R/--recipients-file. Каждый получатель может расшифровать файл.
В режиме -d/--decrypt, файлы, зашифрованные паролем, обнаруживаются автоматически, и пароль запрашивается в интерактивном режиме. В противном случае используются один или несколько ИДЕНТИФИКАТОРЫ, указанных с помощью -i/--identity, для расшифровки файла
Зашифрованные файлы age являются бинарными и не поддаются изменениям, с приблизительно 200 байтами накладных расходов на каждого получателя, плюс 16 байт на каждые 64КБ исходного текста.
OPTIONS
- -h, --help
- Печатать это сообщение справки и выходить.
- -V, --version
- Печатать информацию о версии и выходить.
- --max-work-factor=WF
- Максимальный коэффициент работы для дешифрования пароля.
- -o, --output=ВЫХОД
- Записать
зашифрованный
или
расшифрованный
файл в
ВЫХОД
вместо
стандартного
вывода.
Если ВЫХОД
уже
существует,
он будет
перезаписан.
Если шифрование производится без -a/--armor, rage откажется выводить двоичные данные в TTY. Это можно принудительно указать, используя "-" в качестве ВЫХОД
- -e, --encrypt
- Зашифровать ВХОД в ВЫХОД. Это значение по умолчанию.
- -r, --recipient=ПОЛУЧАТЕЛЬ
- Зашифровать
для явно
указанного
ПОЛУЧАТЕЛЬ.
Смотрите
раздел
ПОЛУЧАТЕЛИ
И
ИДЕНТИФИКАТОРЫ
для
возможных
форматов
получателей.
Этот параметр можно повторять и комбинировать с другими флагами получателей, и файл может быть расшифрован всеми предоставленными получателями независимо.
- -R, --recipients-file=ПУТЬ
- Зашифровать
для
ПОЛУЧАТЕЛИ,
перечисленных
в файле по
адресу
ПУТЬ, по
одному на
строку.
Пустые
строки и
строки,
начинающиеся
с "#",
игнорируются
как
комментарии.
Если ПУТЬ является "-", получатели читаются со стандартного ввода. В этом случае должен быть указан аргумент ВХОД.
Этот параметр можно повторять и комбинировать с другими флагами получателей, и файл может быть расшифрован всеми предоставленными получателями независимо.
- -p, --passphrase
- Шифровать
с паролем,
запрашиваемым
в
интерактивном
режиме из
терминала.
rage
предложит
автоматически
сгенерировать
безопасный
пароль.
Этот параметр не может использоваться с другими флагами получателей.
- -a, --armor
- Зашифровать
только в ASCII
"бронированное"
кодирование.
age armor - это строгая версия PEM с типом "AGE ENCRYPTED FILE", канонический "строгий" Base64, без заголовков и без поддержки начальных и конечных дополнительных данных.
Расшифровка прозрачно обнаруживает и декодирует ASCII бронирование.
- -d, --decrypt
- Расшифровать
ВХОД в
ВЫХОД.
Если ВХОД зашифрован паролем, это будет автоматически обнаружено, и пароль будет запрошен в интерактивном режиме. В противном случае используются ИДЕНТИФИКАТОРЫ, указанные с помощью -i/--identity.
ASCII-армирование распознается и декодируется прозрачно.
- -i, --identity=ИДЕНТИФИКАТОР
- Расшифровать,
используя
ИДЕНТИФИКАТОРЫ
в
ИДЕНТИФИКАТОР.
ИДЕНТИФИКАТОР может быть одним из следующих:
a. Файл, перечисляющий ИДЕНТИФИКАТОРЫ, по одному на строку. Пустые строки и строки, начинающиеся с "#", игнорируются как комментарии.
b. Файл age, зашифрованный паролем, содержащий ИДЕНТИФИКАТОРЫ, по одному на строку, как указано выше. Пароль запрашивается в интерактивном режиме. Обратите внимание, что файлы идентификации, защищенные паролем, не нужны в большинстве случаев использования, где доступ к зашифрованному файлу идентификации подразумевает доступ ко всей системе.
c. Файл частного ключа SSH в формате PKCS#1, PKCS#8 или OpenSSH. Если частный ключ защищен паролем, пароль запрашивается в интерактивном режиме только в случае, если идентификация SSH соответствует файлу. Смотрите раздел Ключи SSH для получения дополнительной информации, включая поддерживаемые типы ключей.
d. "-", что приводит к чтению одного из вышеуказанных вариантов со стандартного ввода. В этом случае должен быть указан аргумент ВХОД.
Этот параметр можно повторять. Идентификаторы пробуются в том порядке, в котором они предоставлены, и используется первый, соответствующий одному из получателей файла. Неиспользуемые идентификаторы игнорируются, но это ошибка, если файл ВХОД зашифрован паролем и указан -i/--identity.
- -j=НАЗВАНИЕ-ПЛАГИНА
- Расшифровать
с
использованием
плагина
без данных
НАЗВАНИЕ-ПЛАГИНА.
Это эквивалентно использованию -i/--identity с файлом, который содержит один плагин ИДЕНТИФИКАТОР, не кодирующий данные, специфичные для плагина.
- [ВХОД]
- Путь к файлу для чтения.
ПОЛУЧАТЕЛИ И ИДЕНТИФИКАТОРЫ
ПОЛУЧАТЕЛИ - это публичные значения, например, публичный ключ, для шифрования файла. ИДЕНТИФИКАТОРЫ - это частные значения, например, частный ключ, позволяющие расшифровать файл, зашифрованный для соответствующего ПОЛУЧАТЕЛЬ.
Родные ключи X25519
Родные пары ключей age генерируются с помощью rage-keygen(1) и обеспечивают небольшие кодировки и сильное шифрование на основе X25519. Они являются рекомендуемым типом получателя для большинства приложений.
Кодировка ПОЛУЧАТЕЛЬ начинается с "age1" и выглядит следующим образом:
age1gde3ncmahlqd9gg50tanl99r960llztrhfapnmx853s4tjum03uqfssgdh
Кодировка ИДЕНТИФИКАТОР начинается с "AGE-SECRET-KEY-1" и выглядит следующим образом:
AGE-SECRET-KEY-1KTYK6RVLN5TAPE7VF6FQQSKZ9HWWCDSKUGXXNUQDWZ7XXT5YK5LSF3UTKQ
Зашифрованный файл не может быть связан с родным получателем, для которого он зашифрован, без доступа к соответствующему идентификатору.
Ключи SSH
В качестве удобной функции rage также поддерживает шифрование для ключей RSA или Ed25519 ssh(1). Ключи RSA должны быть не менее 2048 бит. Эта функция использует более сложную криптографию и должна использоваться только тогда, когда для получателя недоступен родной ключ. Обратите внимание, что ключи SSH могут не быть защищены в долгосрочной перспективе получателем, так как они могут быть отозваны при использовании только для аутентификации.
Кодировка ПОЛУЧАТЕЛЬ - это публичный ключ SSH в формате "authorized_keys" (см. раздел "AUTHORIZED_KEYS FILE FORMAT" sshd(8)), начинающийся с "ssh-rsa" или "ssh-ed25519", как следующее:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDULTit0KUehbi[...]GU4BtElAbzh8=
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH9pO5pz22JZEas[...]l1uZc31FGYMXa
Комментарий в конце строки, если он присутствует, игнорируется.
В файлах получателей, переданных в -R/--recipients-file, неподдерживаемые, но действительные публичные ключи SSH игнорируются с предупреждением, чтобы облегчить использование файлов " authorized_keys" или GitHub ".keys". (См. ПРИМЕРЫ.)
ИДЕНТИФИКАТОР - это файл частного ключа SSH, передаваемый индивидуально в -i/--identity. Обратите внимание, что ключи, хранящиеся на аппаратных токенах, таких как YubiKeys, или доступные через ssh-agent(1), не поддерживаются.
Зашифрованный файл может быть связан с публичным ключом SSH, для которого он был зашифрован. Это сделано для того, чтобы rage мог идентифицировать правильный частный ключ SSH до запроса его пароля, если таковой имеется.
Плагины
rage может быть расширен с помощью плагинов. Плагин загружается только в случае, если указан соответствующий ПОЛУЧАТЕЛЬ или ИДЕНТИФИКАТОР. (Простая расшифровка файла, зашифрованного с помощью плагина, не приведет к его загрузке по соображениям безопасности, среди прочего.)
ПОЛУЧАТЕЛЬ для плагина с именем "example" начинается с "age1example1", в то время как ИДЕНТИФИКАТОР начинается с "AGE-PLUGIN-EXAMPLE-1". Оба они кодируют произвольные данные, специфичные для плагина, и генерируются плагином.
Когда указан один из них, rage ищет age-plugin-example в PATH и выполняет его для выполнения шифрования или расшифровки заголовка файла. Плагин может запросить ввод данных от пользователя через rage для завершения операции.
Плагины могут свободно комбинироваться с другими плагинами или ключами, поддерживаемыми нативно.
Плагин не ограничивается только шифрованием или расшифровкой файлов, предназначенных для него или сгенерированных им. Например, плагин может использоваться для расшифровки файлов, зашифрованных для родного ПОЛУЧАТЕЛЬ X25519 или даже с паролем. Аналогично, плагин может зашифровать файл таким образом, чтобы его можно было расшифровать без использования любого плагина.
Для плагинов, для которых различие ИДЕНТИФИКАТОР/ПОЛУЧАТЕЛЬ не имеет смысла (например, для плагина симметричного шифрования), могут генерироваться только ИДЕНТИФИКАТОР, и пользователю может быть дана инструкция выполнять шифрование с флагами -e/--encrypt и -i/--identity. Для плагинов, для которых концепция отдельных идентификаторов не имеет смысла (например, плагин шифрования паролем), пользователю может быть дана инструкция использовать флаг -j.
ПРИМЕРЫ
- Сгенерировать новый идентификатор, зашифровать данные и расшифровать:
-
$ rage-keygen -o key.txt
Публичный ключ: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p$ tar cvz ~/data | rage -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age
$ rage -d -o data.tar.gz -i key.txt data.tar.gz.age
- Зашифровать example.jpg для нескольких получателей и вывести в example.jpg.age:
-
$ rage -o example.jpg.age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p \
-r age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg example.jpg - Зашифровать для списка получателей:
-
$ cat > recipients.txt
# Alice
age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
# Bob
age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg$ rage -R recipients.txt example.jpg > example.jpg.age
- Зашифровать и расшифровать файл с использованием пароля:
-
$ rage -p secrets.txt > secrets.txt.age
Использование автоматически сгенерированного пароля:
release-response-step-brand-wrap-ankle-pair-unusual-sword-train$ rage -d secrets.txt.age > secrets.txt
Введите пароль: - Зашифровать и расшифровать с файлом идентификации, защищенным паролем:
-
$ rage -p <(rage-keygen) > key.age
Публичный ключ: age1yhm4gctwfmrpz87tdslm550wrx6m79y9f2hdzt0lndjnehwj0ukqrjpyx5
Использование автоматически сгенерированного пароля:
hip-roast-boring-snake-mention-east-wasp-honey-input-actress$ rage -r age1yhm4gctwfmrpz87tdslm550wrx6m79y9f2hdzt0lndjnehwj0ukqrjpyx5 secrets.txt > secrets.txt.age
$ rage -d -i key.age secrets.txt.age > secrets.txt
Введите пароль: - Зашифровать и расшифровать с публичным ключом SSH:
-
$ rage -R ~/.ssh/id_ed25519.pub example.jpg > example.jpg.age$ rage -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg
- Зашифровать и расшифровать с age-plugin-yubikey:
-
$ age-plugin-yubikey
# Запустить интерактивную настройку, сгенерировать файл идентификации и получить получателя.$ rage -r age1yubikey1qwt50d05nh5vutpdzmlg5wn80xq5negm4uj9ghv0snvdd3yysf5yw3rhl3t secrets.txt > secrets.txt.age
$ rage -d -i age-yubikey-identity-388178f3.txt secrets.txt.age
- Зашифровать для SSH-ключей пользователя GitHub:
-
$ curl https://github.com/benjojo.keys | rage -R - example.jpg > example.jpg.age
СМОТРИТЕ ТАКЖЕ
rage-keygen(1), rage-mount(1)
VERSION
v0.11.0
AUTHORS
Jack Grigg <thestr4d@gmail.com>
rage 0.11.0 |