2016-05-25 75 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

相關問題