亚马逊网络服务-AWS EC2:获取主机公钥的安全方式



当我第一次使用ssh连接到AWS EC2实例时,我收到了如下错误,因为主机密钥没有存储在ssh known_hosts文件中。

主机"x.x.x.x"的真实性不能是建立。ECDSA密钥指纹xx:yy:。。。。你确定要吗是否继续连接(是/否)?

现在,我正在自动化ssh。我经常只是在ssh命令中添加StrictHostKeyChecking选项来避免出现此消息。但是,我觉得这不是一个很安全的方式,可能会导致人中攻击。有什么(或好的)方法可以安全地在AWS EC2上获得主机密钥吗?

我认为唯一的方法是解析控制台输出。

#get the console output of the instance
aws ec2 get-console-output --instance-id <instance id> |
#use jq to get the Output field
jq .Output -r |
#use sed to find the interesting bits
sed -n -e '1,/-----BEGIN SSH HOST KEY KEYS-----/d; /-----END SSH HOST KEY KEYS-----/q; p'

注意事项,根据您的应用程序可能无关紧要:

  • aws的输出是JSON,因此我们需要对其进行解析
  • 输出需要一些sed按摩
  • 输出可能不相同,具体取决于AMI

最新更新