Какие опции нужно указать в rsync, чтобы передать .env file безопасно?

Рейтинг: 1Ответов: 3Опубликовано: 20.01.2023

Как известно, обычно ".env" файл может содержать критические данные (особенно в случае продакшена), утечка которых опасна. Тем не менее, может возникнуть необходимость загрузить его на сервер. В основном, я собираюсь использовать для загрузки файлов на сервер утилиту rsync, но способна ли эта утилита обеспечить достаточную безопасность при передаче критических данных и если да, то какие должны нужно указать опции?

Ответы

▲ 1Принят

Чтобы передать .env файл безопасно с использованием rsync, следует указать следующие опции:

  • -a (архивный режим) - копирует файлы и их метаданные, такие как права доступа и время изменения.
  • -e ssh - указывает rsync использовать SSH для соединения.
  • -v (verbose) - выводит подробную информацию о копировании файлов.
  • -z - включает сжатие данных во время передачи.
  • -P - показывает прогресс копирования файлов.

Пример команды:

rsync -azve ssh --progress .env user@remote:/path/to/dir/

Если вы хотите сохранить права доступа и владельца файла, используйте опцию -p

rsync -azve ssh --progress -p .env user@remote:/path/to/dir/

Но не стоит забывать, что при работе с файлами конфигурации с паролями, критической информацией и т.д. следует использовать зашифрованное соединение и обеспечить соответствующую защиту на стороне сервера и клиента. Рекомендуется использовать инструменты шифрования такие как ssh-ключи, сертификаты, туннелирование и т.д. и следить за безопасностью системы и сети.

▲ 2

Rsync может обеспечить безопасность, для этого необходимо указать опцию "--rsh='ssh -c cypher'" и выбрать шифр . Например, чтобы использовать шифрование AES-256 можно использовать команду:

rsync --rsh='ssh -c aes256-ctr' -avz .env user@remote:/path/to/directory

Еще можно использовать аутентификацию по ssh-ключам и сжатие данных при передаче через rsync

rsync -avz -e "ssh -i ~/.ssh/id_rsa" --compress-level=9 .env user@remote:/path/to/directory
▲ 1

rsync умеет работать через ssh соединение. SSH соединение шифруется и считается защищённым. Пример команды

rsync -ahvze ssh /local_path  username@ip:/remote_machine_path