Не удается клонировать частное репо из файла обеспечения Vagrant

У меня есть бродячий скрипт, содержащий команды оболочки. Когда я пытаюсь клонировать частное репо через git и закрытые \ открытые ключи в этом скрипте, я получаю сообщение об ошибке:

Cloning into 'brand.api'...

Stderr from the command:

stdin: is not a tty
dpkg-preconfigure: unable to re-open stdin: No such file or directory
Host key verification failed.
fatal: The remote end hung up unexpectedly

Но когда я исключаю команду git clone ... из сценария предоставления и сам вызываю ее в бродячем поле, все в порядке.

Вот файл положения:

#setting up Git
apt-get install -y git
mkdir ~/.ssh
mkdir ~/bin
cp /vagrant/bin/git-ssh.sh  ~/bin
cp /vagrant/keys/mygit.key ~/.ssh/mygit.key 
cp /vagrant/keys/mygit.pub ~/.ssh/mygit.pub

chmod 600 ~/.ssh/*
echo 'export GIT_SSH=~/bin/git-ssh.sh' >> ~/.bashrc
source ~/.bashrc

#installing brand-api
git clone git@****.ru:brand.api.git

В чем проблема?

ОБНОВЛЕНО

После добавления хоста git repo в known_hosts я получаю следующее:

Stderr from the command:

stdin: is not a tty
dpkg-preconfigure: unable to re-open stdin: No such file or directory
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly

Но если я войду в свой ящик через vagrant ssh и попытаюсь клонировать, все в порядке.


person trerums    schedule 29.05.2014    source источник


Ответы (2)


Ключ SSH сервера git неизвестен/надежен. Когда вы вручную клонируете репозиторий на виртуальную машину, вы получаете запрос на проверку отпечатка пальца, верно?

Вы можете либо пропустить проверку ключа хоста в ~/.ssh/config (или глобально в /etc/ssh/config или подобном):

Host git.example.com
  StrictHostKeyChecking no

Либо можно заранее добавить ключ в ~/.ssh/known_hosts (или /etc/ssh/ssh_known_hosts). Например:

ssh-keyscan -H git.example.com >> ~/.ssh/known_hosts
person tmatilai    schedule 29.05.2014
comment
Мне не сразу было очевидно, что я должен был сделать это (ssh-keyscan) на vagrant box. Оглядываясь назад, это очевидно. Спасибо за решение! - person rob5408; 12.02.2015
comment
По какой-то причине команда ssh-keyscan продолжала не выдавать алгоритм hostkey. Чтобы заставить его работать, мне пришлось добавить флаг -t. ssh-keyscan -t rsa -H git.example.com ›› ~/.ssh/known_hosts - person Daniel P; 03.07.2015

Это работает для меня..

Попробуйте поместить это в свой provision.sh:

sudo -u vagrant git clone git@****.ru:brand.api.git

Вместо:

git clone git@****.ru:brand.api.git
person Everton Z. P.    schedule 05.09.2015