AWS EC2实例-使用用户数据SSH现有计算机无法正常工作

时间:2018-10-26 08:10:20

标签: shell amazon-web-services amazon-ec2 ssh

在新创建的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实例并执行相同的命令,它将按预期工作。

任何人都可以知道是什么原因导致了此问题吗?

1 个答案:

答案 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

请让我知道我是否缺少某些东西。