IBM Cloud Docs
有什麼項目無法使用 SSH 登入裸機伺服器?

有什麼項目無法使用 SSH 登入裸機伺服器?

我無法使用 SSH 來登入裸機伺服器。

如果您無法使用 SSH 登入裸機伺服器,則下列其中一個原因可能是原因。

  • VPN 未連接至裸機伺服器-只有在您想要使用 SSH 連接至專用 IP 時才適用。
  • root 使用者已停用 SSH 登入。
  • SSH 埠號已變更。
  • 作業系統防火牆正在封鎖 SSH 資料流量。
  • 網路防火牆正在封鎖 SSH 資料流量。
  • SSH 服務不在執行中。

請使用下列其中一個解決方案來修正此問題。

  • VPN 未連接至裸機伺服器

    若要使用 SSH 登入伺服器的專用 IP,您必須建立與 IBM Cloud® 的 SSL VPN 連線,如 開始使用 IBM Cloud Virtual Private Networking 中所述。

    您可以透過將連線測試傳送至位於 10.0.80.1110.0.80.12 的 IBM Cloud® DNS 解析器 IP,來驗證 VPN 連線是否正常運作。 如果成功,則 VPN 連線會運作。

  • root 使用者已停用 SSH 登入。

    基於安全理由,在伺服器的 SSH 配置 (/etc/ssh/sshd_config) 中,可能會停用 root 使用者透過 SSH 的遠端登入。

    建議您不要啟用 root 使用者的遠端 SSH 登入。 請改為建立遠端 SSH 登入的非 root 使用者。 不過,如果您想要為 root 使用者啟用伺服器的 SSH,請使用下列步驟。

    1. 使用 IPMI 遠端主控台登入裸機伺服器。

    2. 以 root 身分編輯 /etc/ssh/sshd_configvi/etc/ssh/sshd_config 中的 sshd_config 檔案。

    3. 在包含 PermitRootLogin yes 之檔案的「鑑別」區段中新增一行。 此行可能會以 "#" 來註銷。 如果已註銷,則移除 "#"。

      #LoginGraceTime 2m
      PermitRootLogin yes
      #StrictModes yes
      #MaxAuthTries 6
      #MaxSessions 10
      
    4. 儲存已更新的 /etc/ssh/sshd_config 檔案。

    5. 重新啟動 SSH 服務。

      • 若為 Ubuntu 或 Debian Linux,請執行 sudo systemctl restart ssh.service
      • 若為 RHEL 及 CentOS Linux,請執行 sudo systemctl restart sshd.service
    6. 在服務重新啟動之後,請登入。

  • SSH 埠號已變更

    基於安全理由,您的管理者可能已將使用的 SSH 埠從預設埠 22 變更為另一個埠號。

    您可以透過 IPMI 遠端主控台登入伺服器,來檢查針對 SSH 配置的埠號。 然後,在 /etc/ssh/sshd_config 檔案中搜尋包含 "Port" 的行。

    如果埠已從預設值變更,則執行下列指令,其中 IP_ADDRESS 是伺服器的 IP 位址,PORT_NUMBER 是新的埠號。

    ssh root@IP_ADDRESS -p ssh-PORT_NUMBER
    
  • 作業系統防火牆正在封鎖 SSH 資料流量

    一或多個 iptables 項目可能正在封鎖 SSH 資料流量。 您可以暫時停用 iptables,以驗證作業系統防火牆是否有問題。 若要停用 iptables,請進行下列其中一項編輯。

      ```sh {: pre}
      # /etc/rc.d/init.d/iptables stop or
      # /etc/rc.d/init.d/ip6tables stop
    
      # chkconfig iptables off or
      # chkconfig ip6tables off
      ```
    

    在停用 iptables 之後,如果您可以使用 SSH 來存取伺服器,則需要檢閱 iptables 規則,並進行任何適當的變更。

  • 網路防火牆正在封鎖 SSH 資料流量

    您的防火牆可能封鎖伺服器的 SSH 資料流量。

    您可以透過執行從本端工作站到裸機伺服器的追蹤路徑,來測試防火牆是否封鎖資料流量。 請注意追蹤路徑停止的 IP 位址。 如果這是您正在使用之防火牆或閘道的 IP 位址,則該 IP 位址可能封鎖存取。 您可以聯絡防火牆管理者以取得指引。

    另一個測試防火牆是否是問題來源的方法是暫時略過它,然後使用 SSH 登入您的伺服器。 如果您可以登入,請聯絡防火牆管理者以取得指引。

  • SSH 服務不在執行中

    您可以透過使用 IPMI 遠端主控台登入裸機伺服器並執行 sudo systemctl status sshd,來驗證 SSH 服務是否在執行中。 如果 SSH 服務不在執行中,請使用下列步驟來啟動它。

    1. 請使用下列其中一個指令來重新啟動服務。

      • 若為 Ubuntu 或 Debian Linux,請執行 sudo systemctl start ssh.service
      • 若為 RHEL 及 CentOS Linux,請執行 sudo systemctl start sshd.service
    2. 請驗證 SSH 服務正在接聽,且它是正確的埠。 埠是預設埠 22 或 SSH 服務使用的任何埠。 請使用下列指令。

      netstat -anlp | grep ssh
      

    下列範例使用埠 22。

     netstat -anlp | grep ssh
    
     tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1125/sshd