EC2服务器上的RSA指纹不匹配本地生成的指纹

我有一个弹性IP的EC2实例,在一段时间内没有改变,也没有安装在主用户帐户中的ssh密钥用于在实例化之后ssh进入服务器。

我最近决定实际上应该学习如何检查我的RSA指纹。 所以,我清除了我的本地机器上的known_hosts文件。

亚马逊给你一个*.pem文件作为新的EC2实例的私钥。 所以,我使用下面的命令在本地生成公钥的一半:

ssh-keygen -yf my-key.pem > my-key.pub

然后,我使用下面的命令获得了该键的指纹:

ssh-keygen -lf my-key.pub

然后,我启动了一个到我的EC2实例的SSH连接 – 指纹不匹配!

我过得怎么样? 我做了什么错误的事情可以解释我的指纹不匹配的事实吗?

您公钥的指纹不是SSH服务器密钥的指纹,这些指纹是不同的。 请参阅以下页面的第1部分: https : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

(可选)您可以使用本地系统(而不是实例)上的以下命令之一来validation实例上的RSA密钥指纹。 如果您已经从第三方的公共AMI启动您的实例,这非常有用。 findSSH HOST KEY FINGERPRINTS部分,并记下RSA指纹(例如,1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f :f5:f1:6f)并将其与实例的指纹进行比较。

  • get-console-output(AWS CLI)

aws ec2 get-console-output --instance-id instance_id

  • ec2-get-console-output(Amazon EC2 CLI)

ec2-get-console-output instance_id

注意 SSH HOST KEY FINGERPRINTS部分仅在实例首次启动后可用。