我正在使用win 7和git bash以及亚马逊EC2实例。我试着登录我的实例:
$ ssh -i f:mykey.pem ubuntu@ec2-52-10-**-**.us-west-2.compute.amazonaws.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
71:00:d7:d8:a------------------26.
Please contact your system administrator.
Add correct host key in /m/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /m/.ssh/known_hosts:27
ECDSA host key for ec2-52-10-**-**.us-west-2.compute.amazonaws.com has changed and you have request
ed strict checking.
Host key verification failed.
这样登录过去运行良好,但是在我重新启动EC2实例后,这个问题就开始了。我怎样才能再次使用它?
编辑:
$ ssh -i f:tproxy.pem ubuntu@ec2-52-10-**-**.us-west-2.compute.amazonaws.com
ssh: connect to host ec2-52-10-**-**.us-west-2.compute.amazonaws.com port 22: Bad file number
再次尝试:
The authenticity of host 'ec2-52-10-**-**.us-west-2.compute.amazonaws.com (52.10.**-**)' can't be
established.
ECDSA key fingerprint is d6:c4:88:-----------fd:65.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added 'ec2-52-10-**-**.us-west-2.compute.amazonaws.com,52.10.**-**' (ECDSA) t
o the list of known hosts.
Permission denied (publickey).
我现在该怎么办?
答案 0 :(得分:7)
主机名有一个新的ssh密钥,因此ssh告诉你一些已经改变的东西。 提示在这里:
Offending ECDSA key in /m/.ssh/known_hosts:27
如果您确定另一方的服务器是可信的,则应删除/m/.ssh/known_hosts
中的第27行。
答案 1 :(得分:5)
此错误表示自您上次登录此服务器后已更改的内容以及您尝试ssh到的服务器可能不是您认为的服务器。
有一点需要注意......
创建EC2实例时,没有为此实例分配固定IP
当您启动此实例时,它将获得(动态)IP号和基于该IP的DNS名称
如果关闭实例并在几小时后再次启动它,可能会获得新的IP和新的DNS名称。
如果您仍尝试访问旧DNS名称/ IP ,则实际上是在尝试访问可能不属于您的服务器。
这将以您所拥有的相同的错误信息结束
(这可能是因为您将DNS条目指向旧IP,或者您正在使用尝试访问旧DNS名称/ IP的脚本,或者只是从历史记录中重复ssh命令...)
如果是这种情况,解决方案是使用弹性IP 您可以将弹性IP分配给您的服务器,这将强制它在重新启动之间保持其IP地址。
当您的(附加)服务器启动时,弹性IP是免费的 但是当连接的服务器关闭时,它会花费你一些小费用 这样做是为了确保您在不使用/不需要时“保留”IP
答案 2 :(得分:1)
在BeanStalk环境中,问题在于它引用了来自known_hosts中相应IP的密钥。但这已经改变了。因此,使用相同的键将不起作用。
从~/.ssh/known_hosts
删除IP密钥,然后通过ssh进行连接即可。
(基本上,~/.ssh/known_hosts
中没有该条目时,它将创建一个新条目,从而解决冲突)
答案 3 :(得分:0)
键入以下命令来设置权限。将〜/ mykeypair.pem替换为密钥对私钥文件的位置和文件名。
chmod 400 ~/mykeypair.pem
在您的情况下,mykeypair.pem是tproxy.pem
我遇到了同样的问题,将pem文件设为私有后,它已修复。
的更多信息