gpt4 book ai didi

使用 ECDSA 对 Amazon AWS EC2 服务器进行 SSH 指纹验证?

转载 作者:行者123 更新时间:2023-12-03 08:48:03 24 4
gpt4 key购买 nike

当我创建一个新的 Amazon EC2 服务器时,我使用 ssh 连接到它照常。

我看到了典型的警告:

$ ssh myserver  
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)' can't be established.
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07.
Are you sure you want to continue connecting (yes/no)?

登录前如何验证指纹?

理想情况下,答案基于原始创建控制台日志之外的其他内容——因为日志可能在系统重新启动后或在生成大量输出的大型系统安装脚本期间被刷新,或者连接到旧系统在创建时未跟踪的 key 。

最佳答案

Amazon EC2 控制台现在有一个基于 Web 的终端(大概可以保证安全连接)。转到操作 > 连接 > EC2 实例连接 > 在实例页面上连接。在终端中,使用 ssh-keygen命令显示任意数量的主机 key 算法的指纹。以下示例显示了 Ed25519 主机 key 的 SHA-256 和 MD5 指纹:

sudo ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key
sudo ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key -E md5

上一个答案,在介绍基于 Web 的终端之前:
正如@joelparkerhenderson 的回答所涵盖的,您可以在生成主机 key 时(通过 cloud-init 脚本)从服务器的初始启动日志中收集主机 key 指纹:
enter image description here

如果您未能以这种方式收集 key ,您可以通过从私有(private) Amazon 网络中的另一个受信任实例连接到您的目标实例来获取它们,从而保护自己免受中间人攻击。
在可信实例(您知道指纹的那个)终端上,您可以使用以下命令收集指纹( 172.33.31.199 是私有(private) IP):
$ ssh-keyscan 172.33.31.199 > ec2key
$ ssh-keygen -l -f ec2key
256 SHA256:oZHeiMEPLKetRgd3M5Itgwaqr2zJJH93EvSdx5UoHbQ <ip> (ED25519)
2048 SHA256:8zg105EUFFrPFpVzdfTGsgXnxuSpTiQd85k0uNapUio <ip> (RSA)
256 SHA256:L7UXLw0djE5B9W7ZhvrkYVSTZyi1MEQ2dBaRtpkkUGY <ip> (ECDSA)

如果您没有另一个您知道其指纹的实例,请创建新的临时实例,仅用于收集 key 。首先使用它的初始启动日志找到新临时实例的 key 。从公共(public)网络连接到临时实例。然后通过私有(private) Amazon 网络从临时实例连接到目标实例来收集目标实例的 key 。之后,您可以丢弃临时实例。

我准备了 Guide for connecting to EC2 instance safely using WinSCP .

关于使用 ECDSA 对 Amazon AWS EC2 服务器进行 SSH 指纹验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com