Экземпляр AWS EC2 - использование пользовательских данных для ssh на существующей машине не работает - PullRequest
0 голосов
/ 26 октября 2018

У меня есть требование ssh на существующую машину и запустить какой-нибудь скрипт после запуска только что созданного экземпляра EC2. Я узнал, что это можно сделать с помощью поля User Data.

Вот то, что я пытаюсь.

#!/bin/bash
service docker start
wget -P /home/ec2-user/ https://s3.amazonaws.com/(myKeyLocation)
chmod 400 /home/ec2-user/key.pem
ssh -i /home/ec2-user/key.pem ec2-user@MYEC2InstancePublicDNS nohup mkdir FileCreated

Ниже приведен вывод журнала из /var/log/cloud-init-output.log

Redirecting to /bin/systemctl start docker.service    
Host key verification failed.

Я не уверен, почему «Ошибка проверки ключа хоста» вызывает ошибку. Если я войду в экземпляр Ec2 и выполню ту же команду, она будет работать как положено.

Может кто-нибудь иметь представление, что может быть причиной этой проблемы?

1 Ответ

0 голосов
/ 26 октября 2018

Насколько я понимаю, у вас есть две машины ec2 host1 и host2. Вы пытаетесь выполнить некоторые команды на host2, выполнив вышеупомянутый скрипт bash.

Если вы говорите, что уже пробовали вручную и все работает нормально, то я не уверен, что именно вы пытаетесь сделать. Однако я упоминаю о двух способах удаления ключа из ~ / .ssh / known_hosts.

Попробуйте:

ssh-keygen -R hostname

Это удалит старый ключ.

или Просто отключите проверку ключа хоста при входе в систему с помощью скрипта начальной загрузки.

#!/bin/bash
service docker start
wget -P /home/ec2-user/ https://s3.amazonaws.com/(myKeyLocation)
chmod 400 /home/ec2-user/key.pem
ssh -o StrictHostKeyChecking=no -i /home/ec2-user/key.pem ec2-user@MYEC2InstancePublicDNS nohup mkdir FileCreated

Дайте мне знать, если я что-то упустил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...