Ssh

Amazon EC2 - 重啟後無 SSH,連接被拒絕

  • February 28, 2016

我已經複製了兩三次,所以我猜我正在做的事情有問題。

這是我的步驟:

  1. 通過 EC2 管理控制台啟動新實例,使用:Ubuntu Server 13.10 - ami-ace67f9c(64 位)
  2. 使用預設值啟動(使用我現有的密鑰對)
  3. 實例啟動。我可以使用 Putty 或 Mac 終端通過 SSH 連接到它。成功!
  4. 我重新啟動實例
  5. 10 分鐘後,當實例應該重新啟動並執行時,我的終端連接顯示:
stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem ubuntu@54.201.200.208
OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
debug1: connect to address 54.201.200.208 port 22: Connection refused
ssh: connect to host 54.201.200.208 port 22: Connection refused
stead:~ stead$

好的,我知道公共 IP 地址可以更改,所以檢查 EC2 管理控制台,我確認它是相同的。奇怪的。只是為了好玩,我嘗試連接公共 DNS 主機名:ec2-54-201-200-208.us-west-2.compute.amazonaws.com。沒有骰子,同樣的結果。

即使使用 EC2 控制台中內置的通過 Java SSH 客戶端連接,我也會收到連接被拒絕。

我檢查了安全組。此實例位於組 launch-wizard-4 中。查看該組的入站配置,允許從 0.0.0.0/0 進入埠 22,因此應該在任何地方。我知道我正在訪問我的實例,這是正確的安全組,因為我無法 ping 實例。如果我為此安全組啟用 ICMP,我的 ping 會突然通過。

我在網際網路上發現了一些其他帶有類似錯誤消息的文章,但大多數似乎都可以通過調整防火牆設置輕鬆解決。我已經嘗試了其中的一些,但沒有運氣。

我猜我缺少一個簡單的 EC2 步驟。感謝您提供的任何幫助,我很樂意提供更多資訊或進一步測試!

更新 - 這是我來自 Amazon EC2 控制台的系統日誌:http: //pastebin.com/4M5pwGRt

今天在我的 ec2 實例上發生了類似的行為,並追查到這件事:當我這樣做時 sudo reboot now ,機器掛起,我必須從 aws 管理控制台手動重新啟動它,當我重新啟動它時 sudo reboot 就好了。顯然“現在”不是重新啟動的有效選項,如此處指出的https://askubuntu.com/questions/397502/reboot-a-server-from-command-line

想法?

來自AWS 開發人員論壇關於此主題的文章

嘗試停止損壞的實例,分離 EBS 卷,然後將其作為輔助卷附加到另一個實例。將損壞的捲安裝到另一個實例的某個位置後,檢查 /etc/sshd_config 文件(靠近底部)。我有幾個 RHEL 實例,其中 Yum 在 sshd_config 中插入重複的行,導致 sshd 由於語法錯誤而在啟動時失敗。

一旦你修復它,只需解除安裝卷,分離,重新連接到你的另一個實例並再次啟動它。

讓我們通過指向 AWS 文件的連結來分解它:

  1. 通過進入 EC2 管理控制台,點擊“彈性塊儲存”>“卷”,右鍵點擊與您停止的實例關聯的捲,停止損壞的實例並分離 EBS(根)卷。
  2. 在與損壞的實例相同的區域和相同的作業系統中啟動一個新實例,然後將原始 EBS 根卷作為輔助卷附加到您的新實例。下面第 4 步中的命令假設您將捲安裝到名為“data”的文件夾中。
  3. 損壞的捲安裝到另一個實例的某個位置後
  4. 通過發出以下命令檢查“/etc/sshd_config”文件中的重複條目:
  • cd /etc/ssh
  • sudo nano sshd_config
  • ctrl-v很多次才能到達文件的底部
  • ctrl-k底部的所有行都提到“PermitRootLogin without-password”和“UseDNS no”
  • ctrl-xY保存並退出編輯的文件
  1. @Telegard 指出(在他的評論中)我們只修復了症狀。我們可以通過註釋掉“/etc/rc.local”文件中相關的3行來解決這個*問題。*所以:
  • cd /etc
  • sudo nano rc.local
  • 查找“PermitRootLogin …”行並刪除它們
  • ctrl-xY保存並退出編輯的文件
  1. 修復後,只需解除安裝卷
  2. 通過進入 EC2 管理控制台,點擊“彈性塊儲存”>“卷”,右鍵點擊與您停止的實例關聯的捲,進行分離,
  3. 重新連接到您的其他實例
  4. 再次啟動它

引用自:https://serverfault.com/questions/568240