在新创建的EC2实例启动后,我需要ssh现有计算机并运行一些脚本。我知道可以使用“用户数据”字段完成此操作。
下面是我正在尝试的。
#!/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实例并执行相同的命令,它将按预期工作。
任何人都可以知道是什么原因导致了此问题吗?
答案 0 :(得分:2)
据我了解,您有两个ec2机器host1和host2。您正在尝试通过执行上述bash脚本在host2上执行一些命令。
如果您说您已经手动尝试过并且可以正常工作,那么我不确定您到底想做什么。但是,我提到了2种从〜/ .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
请让我知道我是否缺少某些东西。