Ситуация
В настоящее время я успешно запускаю хранилище удовлетворительно в общедоступном домене (аналогично https://packages.domain.tld).
Пакеты составителя внаходится в репозиториях bitbucket. Я сделал эти репозитории общедоступными, чтобы
- создал репозиторий удовлетворительно
composer install|update
этих пакетов во всех моих проектах (как локально, так и при развертывании ssh).на серверах проекта)
Проблема
Доступны общедоступные и репозиторий удовлетворительно, и репозитории пакетов git. Мы не хотим, чтобы наше программное обеспечение было доступно дляконкуренты, и предпочитают держать его в секрете.
Поэтому в основном я пытаюсь выяснить, можно ли:
- обеспечить хранилище удовлетворительного
- зданиеУдовлетворительный репозиторий с закрытыми репозиториями пакетов в bitbucket
- composer, устанавливающий пакеты локально
- и composer, устанавливающий пакеты на удаленный сервер с помощью ssh
Шаги, предпринятые до сих пор
Я нашел несколько ресурсов о том, как его защитить.
1.OAuth
Я создал потребителя OAuth.При создании удовлетворительного репо он запрашивает ключ и секрет потребителя.Затем он создает репозиторий удовлетворительно.
Когда компоновщик устанавливает / обновляет зависимости локально, он работает (поскольку ключ и секретный ключ пользователя хранятся в кэше композитора).Развертывание на промежуточных или производственных серверах (автоматизировано с помощью capistrano over ssh) завершается с ошибкой:
repository access denied. deployment key is not associated with the requested repository.
fatal: Could not read from remote repository.
В следующем потоке: Satis, Bitbucket и SSH лучшее решение здесь - создатьархивы (.zip) на сервере suc для каждого пакета / версии.
"archive": {
"directory": "dist",
"format": "zip",
"skip-dev": true
}
После добавления вышеизложенного в мой satis.json
и создания репозитория на сервере suc есть копия каждого репозитория пакетов composer (которые используются установщиком composer вместо оригинальных репозиториев git).
Но все равно тогда мой сервер suc будет общедоступным.
2.Настройка удовлетворительно по ssh
В этой теме https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#security говорится, что я могу защитить сервер suc, разместив его через ssh.
После прочтения я все еще не понимаю, как это сделать.Это не достаточно подробно для моего мозга.
Вопросы
- Правильно ли я предположить, что если я принимаю удовлетворительно по SSH, я решил свои проблемы?
- Является ли это лучшим подходом?
- Если да и да, как я могу использовать SSH, есть ли ресурсы, которые могут мне помочь?