AWS EC2 SSH与私钥到不正确的实例

时间:2016-03-31 00:13:39

标签: amazon-web-services ssh amazon-ec2

我已在AWS中使用私钥设置新的EC2实例(已下载并添加到我的〜/ .ssh文件夹中)。

然而,一旦EC2实例启动,我尝试ssh到那个实例" a.a.a.a"使用私钥的公共IP,但它会将我登录到不同的IP /实例。

是否存在我不知道的某种ssh或私钥缓存,或者我是否知道ssh进入不同的EC2实例(在不同的子网中)?

3 个答案:

答案 0 :(得分:1)

而不是猜测,这样做。进入实例后,调用将列出其他数据的ec2metadata私有IP 公共IP (如果已分配一个)实例

<强>的/ usr /斌/ ec2metadata

~$ ec2metadata
ami-id: ami-xxxxx
...
availability-zone: us-east-1a
...
instance-id: i-8080abcd
instance-type: m3.medium
...
local-ipv4: 10.2.1.40
...
public-hostname: ec2-23-64-195-76.compute-1.amazonaws.com
public-ipv4: 23.64.195.76
...

如果您没有找到ec2metadata,请下载它:

$ wget http://s3.amazonaws.com/ec2metadata/ec2-metadata

EC2 Instance Metadata Query Tool

答案 1 :(得分:0)

我相信你已经找到了解决方案,如果没有,你可以考虑在下面尝试。

在Mac / Windows中应该有一个名为&#39; /xxx/xxx/.ssh/known_hosts'的文件;并且请尝试查找两个IP的条目并删除这些行(当您尝试SSH到新实例时会添加这些行。因此,由于旧条目可能会有一些冲突)。我遇到过类似的问题而且我做了,而且工作正常。感谢

答案 2 :(得分:0)

您仍然可以通过在实例中使用curl / wget执行简单的http请求来获取实例的所有元数据或用户数据:

$ curl http://169.254.169.254/latest/meta-data/

它应该返回您可能有兴趣获取其值的所有键,如下所示:

ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
kernel-id
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups

现在通过指定名称来获取所需的密钥/数据,以下内容将有助于区分您的实例:

$ curl http://169.254.169.254/latest/meta-data/public-ipv4
$ curl http://169.254.169.254/latest/meta-data/local-ipv4
$ curl http://169.254.169.254/latest/meta-data/ami-id
$ curl http://169.254.169.254/latest/meta-data/public-hostname
$ curl http://169.254.169.254/latest/meta-data/local-hostname
$ curl http://169.254.169.254/latest/meta-data/mac

要了解有关EC2元数据的更多信息,您可以查看http://www.dowdandassociates.com/blog/content/howto-get-amazon-ec2-instance-metadata/