我有一个具有弹性 IP 的 EC2 实例,它在一段时间内没有改变,也没有在实例化后用于 ssh 进入服务器的主用户帐户中安装 Amazon 的 ssh 密钥。
我最近决定我应该学习如何检查我的 RSA 指纹。因此,我清除了known_hosts
本地计算机上的文件。
Amazon 为您提供了一个*.pem
文件,可用作新 EC2 实例上的私钥。因此,我使用以下命令在本地生成密钥的公钥部分:
ssh-keygen -yf my-key.pem > my-key.pub
然后,我使用以下命令获取该密钥的指纹:
ssh-keygen -lf my-key.pub
然后,我启动了与我的 EC2 实例的 ssh 连接,结果指纹不匹配!
我怎么这么倒霉?我是不是做错了什么,导致我的指纹不匹配?
答案1
您的公钥的指纹不是 SSH 服务器密钥的指纹,它们是不同的。请参阅以下页面的第 1 部分:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
(可选)您可以在本地系统(而不是实例)上使用以下命令之一来验证实例上的 RSA 密钥指纹。如果您从第三方的公有 AMI 启动实例,则此方法非常有用。找到该
SSH HOST KEY FINGERPRINTS
部分,记下 RSA 指纹(例如,1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f)并将其与实例的指纹进行比较。
- 获取控制台输出 (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
部分仅在实例首次启动后可用。