Я пытаюсь запустить git clone
без проверки ssh ключа хоста репозитория. Я могу сделать это по ssh вот так:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
Есть ли способ передать те же параметры ssh команде git clone?
Изменить: есть ограничение, что я не могу изменять ~/.ssh/config
или любые другие файлы на этой машине.
Ответы:
Добавьте их в свой
~/.ssh/config
:Host
Запись , что вы будете указать в командной строке, иHostName
является истинным именем хоста. Они могут быть одинаковыми, илиHost
запись может быть псевдонимом.User
Запись используется , если вы не укажетеuser@
в командной строке.Если вы должны настроить это в командной строке, установите
GIT_SSH
переменную среды так, чтобы она указывала на сценарий с вашими параметрами в нем.источник
GIT_SSH
переменную окружения.Недавно выпущенный git 2.3 поддерживает новую переменную «GIT_SSH_COMMAND», которую можно использовать для определения команды с параметрами.
источник
git clone
или код правильный?Другой вариант указания разных ключей -
git config core.sshCommand
git 2.10 + (3 квартал 2016 г.).Это является альтернативой переменной окружения , описанной в Борисе «s ответ )
См. Commit 3c8ede3 (26 июня 2016 г.), автор - Nguy Thn Thái Ngọc Duy (
pclouds
) .(Объединено Junio C Hamano -
gitster
- в коммите dc21164 , 19 июля 2016 г.)Значит,
git clone
может быть:Если вы хотите применить это для всех репозиториев, как добавляет user1300959 в комментариях , вы должны использовать глобальную конфигурацию.
источник
git clone
- в этом случае вы можете захотеть настроить команду git ssh глобально:git config --global core.sshCommand ...
Вот сложный пример того, как передать аргументы ssh с помощью переменной GIT_SSH:
Примечание. Над строками указаны командные строки терминала, которые следует вставить в терминал. Он создаст файл ssh , сделает его исполняемым и выполнит.
Если вы хотите передать опцию закрытого ключа, проверьте Как указать git, какой закрытый ключ использовать? .
источник
$*
и"$@"
работают. Обычно я использую"$@"
, так как другой кажется устаревшим. Есть ли причина отдавать предпочтение$*
в этом случае?Конфигурация уровня репозитория без влияния на настройки системного уровня
Обобщая уже имеющиеся ответы, я выбираю следующие шаги. Это гарантирует, что изменения конфигурации не повлияют на уровень машины, а только на репозиторий, над которым работаете. Это необходимо в моем случае, поскольку мой сценарий должен выполняться на общем агенте Bamboo.
1. Склонируйте репозиторий, используя
GIT_SSH_COMMAND
подход.2. После клонирования перейдите в каталог репозитория.
3. Настройте
core.sshCommand
конфигурацию так, чтобы все будущие вызовы можно было просто запускать с помощью команд git, как обычно, но с внутренним использованием предоставленных параметров git.источник
core.sshCommand
, о чем я упоминал выше. Проголосовали.Я думаю, что обновить git до версии> = 2.3 и использовать
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
- это вариант ставки, но если это невозможно, @ josh-lee дал хороший вариант, но, пожалуйста, обновите свой ответ, сделав отступ в файле конфигурации ssh.источник
Эта проблема была устранена путем выполнения следующих шагов на Windows-машине: -
Создайте файл конфигурации в папке C: \ Users \ username.ssh.
добавьте следующую строку в файл конфигурации.
затем попробуйте еще раз.
источник