與 VM 實例的 SSH 連線突然失敗

與 VM 實例的 SSH 連線突然失敗

今天突然之間,與我的虛擬機器實例的 SSH 連線花了很長時間而沒有成功。

我不想透過建立一個新實例來重複我的所有工作。而且,我不知道問題是否與磁碟空間有關。

有人可以幫忙嗎。

答案1

首先,你應該收集日誌

  1. 前往Compute Engine-> VM instances-> 點選 NAME_OF_YOUR_VM -> 在VM instance details尋找部分紀錄並點擊Serial port 1 (console)
  2. 再次重新啟動您的虛擬機器執行個體。
  3. 檢查完整的啟動日誌中是否有任何錯誤或/和警告。

如果您發現與磁碟空間相關的錯誤/警告您可以嘗試根據文件調整其大小調整區域永久性磁碟的大小,也根據文章恢復無法存取的實例或完整啟動磁碟

如果執行個體的磁碟空間完全耗盡或未執行 Linux 來賓環境,則無法自動調整根檔案系統的大小,即使您增加了支援該執行個體的永久磁碟的大小。如果您無法連線到實例,或啟動磁碟已滿且無法調整其大小,則必須建立新實例並從快照重新建立啟動磁碟以調整其大小。

否則嘗試透過序列控制台對 VM 執行個體進行故障排除

  1. 啟用串行控制台連接使用gcloud命令:

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
     --metadata serial-port-enable=TRUE
    

或前往Compute Engine-> VM instances-> 點選NAME_OF_YOUR_VM_INSTANCE-> 點選EDIT-> 前往部分Remote access並檢查Enable connecting to serial ports

  1. 建立臨時使用者和密碼來登入:關閉虛擬機器並設置啟動腳本透過在該部分添加Custom metadatastartup-script和值:

     #!/bin/bash
     useradd --groups google_sudoers tempuser
     echo "tempuser:password" | chpasswd
    

然後啟動你的虛擬機器。

  1. 透過串列連接到您的虛擬機使用gcloud命令:

     gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
    

    或前往Compute Engine-> VM instances-> 點擊NAME_OF_YOUR_VM_INSTANCE-> 並點擊Connect to serial console

  2. 檢查出了什麼問題。

  3. 禁用透過串行埠的存取使用gcloud命令:

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
     --metadata serial-port-enable=FALSE
    

或前往Compute Engine-> VM instances-> 點選NAME_OF_YOUR_VM_INSTANCE-> 點選EDIT-> 前往部分Remote access並取消選取Enable connecting to serial ports。請記住,根據文檔與串行控制台交互

警告:互動式串列控制台不支援基於IP的存取限制,例如IP白名單。如果您在執行個體上啟用互動式序列控制台,用戶端可以嘗試從任何 IP 位址連線到該執行個體。如果知道正確的 SSH 金鑰、使用者名稱、項目 ID、區域和實例名稱,任何人都可以連接到該實例。使用防火牆規則來控制對網路和特定連接埠的存取。

如果您無法透過序列控制台連接,嘗試按照文件進行操作SSH 故障排除部分檢查虛擬機器實例而不關閉它檢查另一個虛擬機器上您虛擬機器的磁碟。您可以使用相同的方式將資料傳輸到另一個工作虛擬機器實例。

答案2

什麼對我有用,可以繼續虛擬機器實例並對其進行重置。我沒有丟失任何東西,我的 WordPress 網站在重置後仍然配置正確,並且可以重新登入 VM 實例

相關內容