Unable to connect to EC2 Linux instance in AWS. Error: Host key verification failed
Unable to connect to EC2 Linux instance in AWS. Error: Host key verification failed
我在 AWS 中创建了一个 EC2 Linux 实例。我使用了 Ubuntu Server 20.04 LTS (HVM) AMI。创建实例后,我下载了密钥对文件 (.pem)。我给它起了个名字“EC2-Key-Pair”。然后我启动了实例。然后在我的 Kali Linux 系统中,我打开一个 Linux 终端,我在其中保存了 .pem 文件。之后我使用了这个命令:
chmod 400 EC2-Key-Pair
在运行这条命令之后,我使用了这条命令:
ssh -i "EC2-Key-Pair.pem" ubuntu@ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
其中 ubuntu 是用户名,
ubuntu@ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
是我实例的 Public IPv4 DNS。但是当我执行这个命令时,我得到这个错误:
Host key verification failed.
如何修复这个错误。我已经使用 sudo 而不是使用 sudo 执行了这个命令。但是两种方式都失败了。即使我在互联网上搜索错误,我也找到了一个解决方案,通过使用这个命令我可以修复这个错误:
ssh-keygen -R Hostname
我在哪里使用实例的 public IPv4 DNS 作为主机名:
ssh-keygen -R ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
但它显示错误:
Cannot stat /home/sanniddha/.ssh/known_hosts: No such file or directory
Error after execute the SSH command as root user
Error after execute the SSH command
Error after execute ssh-keygen -R Hostname
此错误意味着自上次登录以来您的实例发生了一些变化,最恰当的是
您创建了 EC2 实例,没有为该实例分配固定 IP。所以
当您启动此实例时,它将获得(动态)IP 和基于该 IP 的 DNS 名称。
如果您关闭实例并在几个小时后重新启动它,它可能会获得一个新的 IP 和一个新的 DNS 名称。
您遇到的麻烦是因为 ssh 密钥指纹发生了变化。一般来说,这不是一件坏事,您接受警告但仔细检查所有内容。
What is an SSH key fingerprint and how is it generated?
What can cause a changed ssh fingerprint
在您的情况下,这可能是因为您之前启动了一个实例,并且该实例具有添加到 ~/.ssh/known_hosts
文件中的相似 DNS 名称。
xx.xx.xx.xx ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP2oAPXOCdClEnRzlXuxKtygT3AROcruefiPi6JPdzo+=
您可以通过发出以下命令来清理 ~/.ssh/known_hosts
ssh-keygen -R ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
当您启动新实例时,IP 在实例的 AWS 端被回收。新实例与 ~/.ssh/known_hosts
文件中的实例不同 ssh fingerprint
,因此出现警告。
如前所述,您需要为您的 IP 打开端口 22
才能访问该实例。
如果可能,请为 ssh 使用 IP 地址而不是 DNS 名称。另外,对于 ssh,您不需要 sudo
我在 AWS 中创建了一个 EC2 Linux 实例。我使用了 Ubuntu Server 20.04 LTS (HVM) AMI。创建实例后,我下载了密钥对文件 (.pem)。我给它起了个名字“EC2-Key-Pair”。然后我启动了实例。然后在我的 Kali Linux 系统中,我打开一个 Linux 终端,我在其中保存了 .pem 文件。之后我使用了这个命令:
chmod 400 EC2-Key-Pair
在运行这条命令之后,我使用了这条命令:
ssh -i "EC2-Key-Pair.pem" ubuntu@ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
其中 ubuntu 是用户名,
ubuntu@ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
是我实例的 Public IPv4 DNS。但是当我执行这个命令时,我得到这个错误:
Host key verification failed.
如何修复这个错误。我已经使用 sudo 而不是使用 sudo 执行了这个命令。但是两种方式都失败了。即使我在互联网上搜索错误,我也找到了一个解决方案,通过使用这个命令我可以修复这个错误:
ssh-keygen -R Hostname
我在哪里使用实例的 public IPv4 DNS 作为主机名:
ssh-keygen -R ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
但它显示错误:
Cannot stat /home/sanniddha/.ssh/known_hosts: No such file or directory
Error after execute the SSH command as root user
Error after execute the SSH command
Error after execute ssh-keygen -R Hostname
此错误意味着自上次登录以来您的实例发生了一些变化,最恰当的是 您创建了 EC2 实例,没有为该实例分配固定 IP。所以 当您启动此实例时,它将获得(动态)IP 和基于该 IP 的 DNS 名称。 如果您关闭实例并在几个小时后重新启动它,它可能会获得一个新的 IP 和一个新的 DNS 名称。
您遇到的麻烦是因为 ssh 密钥指纹发生了变化。一般来说,这不是一件坏事,您接受警告但仔细检查所有内容。
What is an SSH key fingerprint and how is it generated?
What can cause a changed ssh fingerprint
在您的情况下,这可能是因为您之前启动了一个实例,并且该实例具有添加到 ~/.ssh/known_hosts
文件中的相似 DNS 名称。
xx.xx.xx.xx ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP2oAPXOCdClEnRzlXuxKtygT3AROcruefiPi6JPdzo+=
您可以通过发出以下命令来清理 ~/.ssh/known_hosts
ssh-keygen -R ec2-13-232-252-152.ap-south-1.compute.amazonaws.com
当您启动新实例时,IP 在实例的 AWS 端被回收。新实例与 ~/.ssh/known_hosts
文件中的实例不同 ssh fingerprint
,因此出现警告。
如前所述,您需要为您的 IP 打开端口 22
才能访问该实例。
如果可能,请为 ssh 使用 IP 地址而不是 DNS 名称。另外,对于 ssh,您不需要 sudo