如果您無法使用root用戶通過SSH遠程連接Ubuntu系統的ECS實例,可以通過實例健康診斷工具進行問題修復。

前提條件

Linux實例已通過實例健康診斷工具進行診斷,診斷結果中實例無法啟動場景的SSH是否允許root用戶登錄檢查未通過。

背景信息

問題描述:無法使用SSH遠程連接Ubuntu系統的ECS實例,但是可以使用VNC登錄,查看日志提示failed password

問題原因:Ubuntu 18.04系統默認SSH的配置文件禁止root用戶登錄。
說明 Linux社區提供的Ubuntu 18.04系統默認禁用了root用戶登錄,但阿里云對應的公共鏡像默認支持root用戶登錄。

操作步驟

  1. 遠程連接問題實例。
    當ECS實例處于正在掛載修復盤的模式下時,只能通過VNC遠程連接。具體操作,請參見使用VNC登錄實例
    說明 當您通過實例健康診斷工具診斷出問題后,診斷系統已自動在問題實例中掛載了修復盤,建議您根據本文提供的操作步驟,通過臨時掛載的修復盤進行問題修復。您也可以通過ECS控制臺卸載修復盤并恢復問題實例至正常模式,然后直接通過VNC登錄實例進行修復。具體操作,請參見無法使用SSH遠程連接Ubuntu系統的ECS實例
  2. 查看問題實例原有系統盤的掛載信息。
    在臨時掛載的修復盤中,問題實例原有系統盤的文件系統會被掛載到某一臨時目錄下。您可以通過以下任一方式查看所在的臨時目錄信息:
    • 通過ECS控制臺的實例健康診斷結果獲取,對應的信息格式示例如下所示:/tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****
    • 在臨時掛載的修復盤中,運行mount命令查看。例如,問題實例原有系統盤的設備路徑為/dev/vda,命令示例如下所示:
      mount | grep /dev/vda
      返回結果如下所示:
      /dev/vda1 on /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse**** type ext4 (rw,relatime)
  3. 運行chroot命令,將根目錄切換為問題實例原有系統盤所在的臨時路徑,并進入chroot環境。
    您需要在問題實例原有系統盤所在的臨時路徑中進行文件修復。例如,臨時路徑為/tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****,命令如下所示:
    chroot /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****
  4. chroot環境中,運行以下命令備份/etc/ssh/sshd_config文件。
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  5. 編輯/etc/ssh/sshd_config文件。
    1. 運行以下命令,進入編輯模式。
      vi /etc/ssh/sshd_config
    2. PermitRootLogin配置項的值修改為yes
      建議您根據業務實際情況,檢查以下配置項:
      • AllowUsersAllowGroupsDenyUsersDenyGroups等用戶信息配置項是否正確,確保用于登錄的用戶未被禁止。
      • PasswordAuthentication配置項的值是否符合實例的登錄方式。

        例如,使用密碼登錄實例時,PasswordAuthentication配置項應為yes;使用密鑰對登錄實例時,該配置項應為no

    3. 修改完畢后,按下Esc鍵,然后輸入:wq后回車,保存并退出文件。
  6. 修復完成后,退出修復環境,然后檢查問題實例的當前狀態。
    1. 運行exit命令,退出chroot環境。
    2. 在ECS控制臺的實例健康診斷頁面,卸載臨時掛載的修復盤并恢復問題實例至正常模式。
    3. 遠程連接已修復的ECS實例,確認成功登錄。