Подтвердить что ты не робот

Когда у вас есть секретный ключ в вашем проекте, как можно нажать на GitHub?

Я пытаюсь продвинуть новый, пустой проект Rail 3.0.4 в GitHub, но просто понимаю, что в хранилище сеансов cookie есть секретный ключ:

В config/initializers/secret_token.rb

NewRuby192Rails304Proj::Application.config.secret_token = '22e8...'

Итак, как мы можем избежать его нажатия на GitHub? Мы можем игнорировать этот файл (используя .gitignore), но без этого файла приложение Rails не будет запускаться вообще (и не является полным Rails-приложением). Или, как правило, другие файлы или фреймворки могут иметь файлы, содержащие секретные ключи. В таком случае, как это следует обрабатывать при нажатии на GitHub?

4b9b3361

Ответ 1

Добавьте в свое репо:

  • его шаблон (secret_token.rb.template),
  • a script способен генерировать правильный файл конфигурации secret_token.rb на основе локальных данных, найденных на сервере (например, зашифрованный файл с секретным значением, готовым к декодированию и помещением в файл secret_token.rb)

Оттуда добавьте настраиваемый драйвер атрибута git:

enter image description here

Указанный выше script будет вашим " smudge 'script, который при контроле рабочего дерева автоматически генерирует правильный файл.

Ответ 2

Поместите секретный ключ в какой-то внешний файл конфигурации. То, что мы делаем.

Ответ 3

Существует несколько внешних инструментов, которые делают именно это. В основном, эти инструменты шифруют файл с вашими частными данными и хранят его в VCS, но игнорируют оригинальный незашифрованный файл.

Один из самых известных и надежных blackbox. Он использует gpg для шифрования ваших файлов и работает как с git, так и hg. Кстати, он создан командой SO. Посмотрите раздел alternatives, у него есть как минимум пять других инструментов.

Я также могу рекомендовать вам инструмент git-secret, он также использует gpg. Но он работает только с git. Основное преимущество заключается в том, что рабочий процесс намного проще по сравнению с другими инструментами.

Ответ 4

Вы можете рискнуть доверять безопасности/конфиденциальности Github, если это частный репозиторий.. или:
- Извлеките данные из файла конфигурации на сервере. Например, если вы используете Capistrano для развертывания, вы можете добавить шаг, который копирует конфигурационный файл где-то на сервере.
- Используйте переменную окружения.