2016-02-25 3 views
0

Я пытаюсь вытащить репозиторий bitbucket на экземпляр ec2 во время запуска, используя userdata. Для этого я создал ключевую пару и привязал ее к моей учетной записи bitbucket. Я поместил закрытый ключ в ведро S3, доступное для моего экземпляра через роль IAM.Git-pull через пользовательские данные в экземплярах AWS EC2

Хотя это все отлично работает, когда я делаю каждый шаг вручную (вход в экземпляр ec2, загрузка ключа из s3, ssh-add key, git clone my repo), все идет к черту, когда я пытаюсь это через пользовательские данные.

Это то, что я пытался до сих пор:

aws s3 cp s3://bucket/private_key private_key 
chmod 600 private_key 
eval `ssh-agent -s` 
ssh-add private_key 
mkdir -p .ssh 
ssh-keyscan -t rsa bitbucket.org > .ssh/known_hosts 
git clone [email protected]:user/project.git 

Опять же, все это прекрасно работает, когда делается вручную. Тем не менее, когда сделано через UserData, результат будет:

download: s3://bucket/private_key to ./private_key 
Agent pid 1623 
Identity added: private_key (id_rsa) 
# bitbucket.org SSH-2.0-OpenSSH_5.3 
Initialized empty Git repository in /project/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 

Я пытался несколько вещей, но это как SSH, используемый при добавлении ключа не совпадает с той, которая используется, чтобы вытащить repo ... Любой вход был бы очень благодарен!

ответ

0

Какой у вас дистрибутив Linux?

mkdir -p .ssh 
ssh-keyscan -t rsa bitbucket.org > .ssh/known_hosts 

Вы не создаете каталог .ssh в домашнем каталоге. В зависимости от вашего дистрибутива Linux, измените его на /home/ec2-user/ или /home/ubuntu/ или /root/ и т.д.,

Пример:

mkdir -p /home/ubuntu/.ssh 
ssh-keyscan -t rsa bitbucket.org > /home/ubuntu/.ssh/known_hosts 
+0

Он работал. Имел пользователь/root /, как это делается под userdata. Благодаря ! –

Смежные вопросы