я добавил вторые 2 ключа ssh и добавил необходимую конфигурацию в Ubuntu WSL2 ~/.ssh
Host github-key2
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/key2
поэтому в UBUNTU это работает:
git clone git@github-key2:vendor/repoxxx.git
Но мне нужно запустить это в ddev с композитором:
Я добавил git@github-key2:vendor/repoxxx.git в разделе репозиториев композитора так же, как я сделал это для других защищенных репозиториев
"vendor/repoxxx": {
"type": "vcs",
"url": "git@github-key2:vendor/repoxxx"
}
ddev авторизация ssh (оба ключа добавлены)
но композитор в DDEV просто использует обычный ключ "id_rsa", а не второй "key2"
ddev composer req vendor/repoxxx





Вам нужно поместить в контейнер файл .ssh/config. Обычный способ сделать это — поместить нужный .ssh/config в homeadditions либо в проекте, либо в global homeadditions.
Документы по homeadditions находятся по адресу https://ddev.readthedocs.io/en/latest/users/extend/in-container-configuration/
Для некоторых людей работает просто символическая ссылка или копирование их .ssh/config на стороне хоста, но в большинстве ситуаций вам потребуется собственный .ssh/config для использования внутри контейнера.
Вы устанавливаете или обновляете зависимости композитора в среде, в которой ваша конфигурация SSH недоступна.
Вместо того, чтобы запускать композитор в этой среде, просто разверните зависимости вашего проекта из рабочей среды в среду выполнения. Для Composer достаточно рекурсивной копии vendor-dir, по умолчанию это vendor.
Например. если вы используете виртуальные машины или контейнеры Docker для разработки, вы монтируете папку поставщика (должна быть монтирована только для чтения), и обычно все готово.
Есть предостережение: платформа PHP в вашем блоке разработки может отличаться от целевой платформы PHP проекта (например, другая версия PHP также может появиться позже, когда вы обновите свой блок разработки).
Если это так, сделайте целевую платформу явно видимой в файле конфигурации вашего проекта (composer.json по умолчанию), чтобы у вас это было должным образом задокументировано, а композитор получал зависимости в правильных версиях целевой платформы и знал, какие расширения PHP и версии библиотек доступны там.
TLDR: продолжайте разрешать зависимости вне процесса размещения приложения, начиная с самой ранней версии. Среда выполнения не должна ничего знать об использовании вашего композитора или конфигурации SSH и не должна полагаться на это.
Еда на вынос:
Проведите эту грань между сборкой и средой выполнения заранее, так как часто она не сразу видна разработчикам, которые сосредоточены только на определенной технической проблеме, хотя она существует с самого начала. Если он остается скрытым в течение более длительного времени, это может привести к тому, что о нем узнают только позже, что приведет к позднему исправлению конфигурации и других недостатков приложения в проекте. Недостатки, о которых вы узнаете поздно, приводят к самым высоким затратам.