Я пытаюсь выполнить git clone
сценарий bash, но при первом запуске сценария сервер не известен, но сценарий завершается ошибкой. У меня есть что-то вроде этого:
yes | git clone git@github.com:repo/repoo.git
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
Но это игнорирование yes
. Знаете ли вы, как заставить git clone
добавить ключ к известным хостам?
echo yes | git clone git@github.com:repo/repoo.git
?echo yes
не очень хороший подход: при втором запуске команды ssh не спросит, хотите ли вы продолжить, потому что ключ сервера уже известен.Ответы:
Добавьте следующее в ваш
~/.ssh/config
файл:Все, что использует клиент open-ssh для установки удаленной оболочки (как это делает клиент git), должно пропустить проверку ключей на github.com.
На самом деле это плохая идея, поскольку любая форма пропуска чеков (независимо от того, нажимаете ли вы автоматически «да» или пропускаете чек в первую очередь), создает место для человека, находящегося под угрозой среднего уровня безопасности. Лучшим способом было бы извлечь и проверить отпечаток пальца и сохранить его в
known_hosts
файле, прежде чем запускать скрипт, который автоматически подключается.источник
known_hosts
файле ранее .yes
выходыy
. Потребность в принятии ключа RSAyes
. Вы могли бы попробоватьyes yes | git clone git@github.com:repo/repoo.git
такyes
выводыyes
вместоy
.источник
echo "yes" | ...
нет. Я думаю,git
что не принимает трубопровод. Может быть, только в какой-то версии?Запуск
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
до клонирования добавит ключ и предотвратит появление приглашения.Конечно, этот подход также уязвим для атаки MITM.
источник
Я сталкивался с этой проблемой раньше. Хотя это было на компьютере с Windows, но нам нужно было использовать ssh для подключения к удаленному хосту. Мы столкнулись с той же проблемой, что первое соединение всегда не удавалось, потому что оно не распознало ключи.
Я решил это, подключившись вручную, найдя ключ реестра и импортировав его в начале скрипта. В Linux это должна быть та же самая общая идея: вы хотите добавить этот сервер в список доверенных хостов, чтобы ssh не спрашивал вас, доверяете ли вы ему каждый раз.
Как только вы подключитесь вручную, найдите файл ключа и добавьте его в свой файл known_hosts. Таким образом, ssh будет просматривать этот файл, предполагая, что вы знаете, что делаете, и продолжайте, не спрашивая вас об отпечатке пальца.
источник