2016-05-25 38 views
3

不幸的是,3小时的谷歌搜索没有帮助我在这一个,我指望有人在那里谁可以走一个'nix noob通过这一切。SSH到AWS EC2问题 - key_load_public:没有这样的文件或目录

我的情况

我一直SSH-ING成功打入我的AWS实例从我的Mac个月。即使在今天它仍在工作。这从逻辑上消除了所有与安装相关的问题,例如确保我已打开端口22,指向0.0.0.0/0,拥有正确的用户名(其ubuntu不是ec2用户),让我的pem文件正确许可等。

然后我的mac挂起,我重新启动mac,突然间我不能ssh。我甚至无法通过从aws控制台直接启动的java客户端ssh进入。利用率和其他状态检查在aws控制台看起来很好。

这里是我的-vvv个人信息改为:

OpenSSH_6.9p1, LibreSSL 2.1.8 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 21: Applying options for * 
debug2: ssh_connect: needpriv 0 
debug1: Connecting to <myip> [<myip>] port 22. 
debug1: Connection established. 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/<myfilepath>/ipythonswyx1.pem type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /Users/<myfilepath>/ipythonswyx1.pem-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.9 
ssh_exchange_identification: read: Operation timed out 

我想,这是相当明显,DEBUG1:key_load_public:没有这样的文件或目录是这里的问题。但是a)为什么突然停止工作? b)即使在我再次修改pem文件后,它仍然显示此错误?

我在网上可以找到的唯一的其他解决方案是删除这个实例,只需重新设置 - 我非常想保留这个实例。

可以请你提出建议,我应该谷歌或任何其他诊断我可以运行?成为这样一个n00b的问题是我甚至不知道正确的问题,或者如何描述我的问题,而不是“现在工作的这个东西不起作用,我没有任何想法为什么”。帮帮我。

+0

说明更详细的你有没有机会从另一台计算机尝试?复制您的密钥并尝试,这将消除选项密钥已损坏 –

+0

'ssh_exchange_identification:read:Operation timed'由于您没有从远程服务器获取版本字符串,连接实际上失败,这是开始ssh协议。服务器可能出现故障,您可能连接到错误的服务器,或者防火墙可能会干扰连接。 – Kenster

+0

Kenster是正确的,你有“连接建立”,那么你的本地找不到密钥,那么你*应该*获得“远程协议版本”(这不会发生)。我怀疑你的本地Mac上存在某种防火墙废话 - 因为重启后问题发生了。您可以尝试重新启动远程服务器。您可能还需要在我的答案中使用这些建议 - 因为Mac上的本地密钥没有被找到,所以非常感谢 – Vorsprung

回答

5

打开一个shell作为用户

键入以下命令

find $HOME -name ipythonswyx1.pem -print 

这应该找到路径到您的钥匙。如果它不存在一些其他possiblities:

  • 密钥具有不同的名称,以在输出上述
  • 键所示的是根据不同的用户帐户
  • 的密钥已经被意外删除

假设找到了密钥,请记下路径并将其用作ssh上的参数“identityfile”。因此,假设路径/Users/Bob/.ssh/ipythonswyx1.pem和主机IP地址是54.3.4.5那就试试这个命令

ssh -i /Users/Bob/.ssh/ipythonswyx1.pem [email protected] 

如果找不到键,那么你需要做一个新实例,从旧磁盘分离EBS卷,将旧EBS卷附加到新实例,在旧EBS卷上为ubuntu用户的“.ssh/authorized_keys”文件添加一个新密钥,然后卸载它并重新附加到旧实例。

更多关于事件(更改密钥)看到serverfault https://serverfault.com/questions/273664/how-do-i-change-the-key-pair-of-an-aws-instance-if-i-lost-my-pem-file 这个答案的这个序列,并与一步一步这里https://aws.amazon.com/articles/5213606968661598

+1

这只是一个错误输出。尝试搜索您的整个硬盘上的.pem文件,如果您有备份,然后再看看它们。如果所有失败,您将不得不使用EBS卷程序 – Vorsprung

相关问题