Самый легкий путь состоит в том, чтобы использовать другие 4 эластичных дюйм/с и применить их к i-N экземплярам, в этом случае они просто будут дополнительными записями DNS для тех другой дюйм/с в Вашем общедоступном DNS---не отличающийся от www.example.com.
Немного менее ужасная версия (но намного более включенный) метод должен был бы выполнить обратный прокси, который смотрит на входящие запросы и вперед их к внутренним адресам экземпляров i-N.example.com на основе чего-то идентифицируемого на прикладном уровне (например, HTTP vhost)
Более ужасная версия включила бы обеспечение размещенного + динамическая служба DNS для example.com и запись сценария запуска, который обновит DNS для i-N экземпляров соответственно.
В git версии 2.3 есть переменная среды GIT_TERMINAL_PROMPT
, которая при установке на 0
отключает запрос учетных данных.
Вы можете получить дополнительную информацию об этом в man git
(после обновления до версии git 2.3
) или в этом сообщении в блоге на github .
Примеры:
git clone https : //github.com/some/non-existing-repo
запросит имя пользователя и пароль GIT_TERMINAL_PROMPT = 0 git clone https://github.com/some/non-existing-repo
будет сбой без запроса имени пользователя и пароля В зависимости от того, как вы запускаете git, перенаправление stdin или stdout, чтобы они не были подключены к терминалам, остановит git от запроса подробностей и просто вызовет ошибку.
Это приведет к также позволяют обнаруживать ошибки (или, по крайней мере, журналы) веб-службы.
Если вы используете аутентификацию ssh и в Linux, вы можете создать замену команды ssh, чтобы отключить это.
Создайте файл с именем «sshnoprompt.sh» с помощью:
ssh -oBatchMode = yes $ @
Сделать этот файл исполняемым с помощью chmod + x sshnoprompt.sh
Затем при запуске git:
GIT_SSH = "sshnoprompt.sh" git clone foo @ dummyserver : not_a_repo
И он не разрешает никаких интерактивных подсказок или вопросов git - он не должен иметь возможности спрашивать пользователя ни о чем.
Работа с git версии 1.8.3.1;
git clone -c core.askPass $ echo url / или / path / to / git / repo
Конфигурация core .askPass
работает, передавая управление обработкой учетных данных вышеупомянутой программе. Однако, поскольку $ echo
не может делать ничего, кроме вывода, попытка клонирования сразу же терпит неудачу и применяется соответствующее перенаправление bash. Этот код вызывается только в том случае, если репозиторий git оказывается частным, и выводит сообщение об ошибке, указывающее, что аутентификация не удалась для конкретного репозитория. Вы можете проверить это на https://github.com/git/git
публичном репозитории против частного репозитория, о котором вы знаете.
Чтобы сделать сделку приятнее, вам даже не нужно будет ссылаться на такую программу, как echo
. Простая передача конфигурации git -c core.askPass
без последующего ввода все равно приведет к сбою в случае, если репозиторий окажется частным, поскольку код не будет знать, на какую программу разгрузить обработку учетных данных. Хотя это, безусловно, более старый и простой метод, чем другие, упомянутые здесь, я не знаю, будет ли он иметь такой же эффект в более старых версиях git.
Когда у вас есть контроль только над конфигурацией git:
git config --global credential.helper '!f() { echo quit=1; }; f'
Дает
$ git clone https://github.com/edx/drf-extensions.git/
Cloning into 'drf-extensions'...
fatal: credential helper '!f() { echo quit=1; }; f' told us to quit
идея исходит от первоначального коммиттера GIT_TERMINAL_PROMPT
после перехода по ссылке @user243345.
GIT_TERMINAL_PROMPT=0 git clone https://github.com/some/non-existing-repo
Работайте у меня на Mac.
Приведенные выше ответы работали только частично для меня при использовании Git-for-Windows: два разных приложения соперничали за мое внимание с автоматизированными скриптами git pull/push:
Чтобы закрыть их все, без удаления диспетчера учетных данных, как указано в некоторых ответах здесь: https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows, вот что теперь работает, сидя поверх автоматизированных (bash
) сценариев оболочки:
# https://serverfault.com/questions/544156/git-clone-fail-instead-of-prompting-for-credentials
export GIT_TERMINAL_PROMPT=0
# next env var doesn't help...
export GIT_SSH_COMMAND='ssh -oBatchMode=yes'
# these should shut up git asking, but only partly: the X-windows-like dialog doesn't pop up no more, but ...
export GIT_ASKPASS=echo
export SSH_ASKPASS=echo
# We needed to find *THIS* to shut up the bloody git-for-windows credential manager:
# https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows#answer-45513654
export GCM_INTERACTIVE=never
git config credential.modalprompt false
-- упомянуты как решение в ответах на этот связанный вопрос SO. у меня нет игральных костей. GIT_SSH_COMMAND
переменной среды: ничего не сработало, кроме сохранения, поскольку я подозреваю, что это сработает при запуске этого материала на компьютере с Linux вместо Windows. GIT_TERMINAL_PROMPT=0
: тоже не работает. Сохранил по той же причине, но без костей в Windows. О, и удаление диспетчера учетных данных git, как было предложено в других ответах в этой ссылке SO, было решено не продолжать, поскольку это определенно повлияет на другие деревья репозиториев, где эта штука может однажды пригодиться. Хотя это рассматривалось немного, прежде чем я решил не делать этого.
*_ASKPASS
env.vars., как ни странно, заткнуть приглашение входа в систему «X-Windows look» (автоматически) git push
. Ура! GCM_INTERACTIVE=never
был волшебным ингредиентом, который окончательно заткнул это диалоговое окно диспетчера учетных данных git for-windows. Благодаря этому конкретному ответу (https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows#answer-45513654), который не находится в верхней части списка, но определенно является самым важным. для моего случая. $ git --version
git version 2.30.1.windows.1
Много лет искал эту информацию время от времени: на этот раз, видимо, мне повезло, и, возможно, я продержался дольше(?), продираясь через миллионы страниц болтают о настройке ваших учетных данных: Google явно не умен. По крайней мере, он не очень хорошо слушает вопросы меньшинства, это точно.
Заголовок добавлен в надежде, что индексация Google поместит эту страницу выше для следующей, ищущей ответы на эти вопросы или их варианты...