Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 官方博客

當伺服器無法連線 SSH 時該怎麼辦

發布日期:2026-06-12
伺服器 SSH 連線故障排除

當你發現伺服器無法透過 SSH 連線時,難免會感到沮喪或擔憂。請先保持冷靜。你可以按照明確的步驟來解決問題,並且無須冒著資料風險盲目操作。請耐心閱讀本指南。你將學會如何在保障資料安全的前提下處理這個問題。為了獲得最佳效果,請依照順序逐步排查。

當伺服器無法連線時的緊急處理措施

當你發現伺服器無法連線時,應儘快先檢查一些基礎項目。這些初步步驟可以幫助你在進入更深入的故障排除之前,先發現一些簡單問題。

檢查伺服器狀態和執行時間

首先,確認你的伺服器實際上正在運作。許多服務商都會提供控制台,你可以在其中查看伺服器是否在線上。如果你看到伺服器已停止或被暫停,那麼你將無法連線。有些服務商可能會因濫用行為或帳單逾期而鎖定伺服器。請查看是否有任何關於伺服器狀態的提醒或警告。如果你看到「connection refused(連線被拒絕)」之類的訊息,表示伺服器可能沒有接受連線請求。

提示:如果你使用的是雲端伺服器租用,請檢查執行個體狀態。執行個體處於已停止或正在重新啟動時,可能會導致 connection timeout(連線逾時)。

查看伺服器租用控制台中的警示資訊

接下來,登入你的伺服器租用控制台,查看其中的警示或通知。這些資訊可能會提示你是否存在濫用鎖定、維護或網路問題。如果你看到 authentication failed(身分驗證失敗)的提示,請再次確認你的使用者名稱、私鑰路徑以及通關片語是否正確。有些控制台會顯示伺服器 unable to ssh(無法 SSH 登入)是否是由於防火牆規則或連接埠被阻擋所造成。如果你看到 connection timeout(連線逾時),請檢查正確的連接埠是否已開放。

你可能會看到的常見警示:

  1. Authentication failed(身分驗證失敗)——檢查你的登入資訊。

  2. Passphrase required(需要通關片語)——輸入你的 SSH 通關片語。

  3. Connection timed out(連線逾時)——檢查你的防火牆和連接埠設定。

確認網路和 IP 位址

你需要確保自己使用的是正確的 IP 位址或主機名稱。一個很小的拼字錯誤都可能導致連線失敗。你可以使用 ping 指令檢查主機名稱是否能夠正確解析。如果 ping 失敗,可嘗試使用第三方 DNS 檢查工具來確認主機名稱是否正確。請始終使用服務商提供的 IP 位址或主機名稱。如果使用錯誤,就可能會看到如 connection refused(連線被拒絕)之類的錯誤。

  • 主機名稱拼寫錯誤會導致無法存取。

  • Ping 可以幫助你測試伺服器是否有回應。

  • DNS 檢查工具可以確認主機名稱是否有效。

透過執行這些緊急處理步驟,你通常可以較快找出為什麼無法透過 SSH 登入伺服器。這些檢查可以節省時間,也能幫助你避免過早進入更複雜的排障流程。

排查 SSH 連線問題

當你的伺服器無法透過 SSH 連線時,你需要找出問題究竟從哪裡開始。你可以檢查問題是來自 DNS、網路,還是用戶端設定。請依照以下步驟排查 SSH 連線問題並修復相關故障。

測試主機名稱解析

首先檢查你的電腦是否能夠解析伺服器主機名稱。如果你使用的是主機名稱而不是 IP 位址,那麼你的系統必須先將其轉換為正確的 IP。有時,DNS 問題會導致 connection timeout(連線逾時)或 connection refused(連線被拒絕)。

  • 確保你已經為管理介面和資料介面都設定了 DNS 伺服器。

  • 如果你使用診斷介面進行查詢,請確認該介面已分配 IP 位址。

  • 嘗試 ping 每一個 DNS 伺服器的 IP 位址,查看它們是否有回應。

  • 如果 ping 正常但名稱解析失敗,請檢查你的存取控制規則。

  • 如果 ping 正常、路由正確且存取控制也沒有問題,那麼 DNS 伺服器可能並未保存該完整主機名稱的對應記錄。

說明:如果你能解析出名稱,但得到的 IP 位址並不是最新的,那麼系統可能正在使用快取的 DNS 記錄。這會導致顯示過期 IP 位址,從而造成連線失敗。

使用 Ping 和 Telnet 進行網路檢查

你可以使用一些簡單的網路工具來測試你的電腦能否存取伺服器。ping 指令用於檢查伺服器是否回應網路請求;telnet 指令則用於測試 SSH 連接埠是否開放並接受連線。

  • 使用 ping <hostname or IP> 查看伺服器是否有回應。

  • 如果 ping 失敗,可能是網路問題,也可能是伺服器離線。

  • 使用 telnet <hostname or IP> 22 檢查連接埠是否開放。

  • 如果 telnet 無法連線,可能是防火牆阻擋了該連接埠,或者 SSH 服務沒有執行。

提示:如果 ping 正常但 telnet 失敗,請優先檢查防火牆規則或 SSH 服務狀態。

分析 SSH 用戶端日誌

你的 SSH 用戶端會提供連線過程中出現問題的線索。你可以啟用詳細模式來查看更具體的錯誤資訊。這有助於判斷問題出在身分驗證、網路還是設定方面。

  • 執行 ssh -v user@hostname 以取得更多資訊。

  • 尋找諸如 connection refused(連線被拒絕)、connection timeout(連線逾時)或 authentication failed(身分驗證失敗)之類的訊息。

  • 如果看到 connection refused(連線被拒絕),表示伺服器可能沒有執行 SSH 服務,或者防火牆阻擋了連接埠。

  • 如果看到 connection timeout(連線逾時),表示可能是網路阻斷了連線,或者伺服器已當機。

  • 如果看到 authentication failed(身分驗證失敗),請檢查使用者名稱、密碼或金鑰。

透過這些步驟,你可以逐步縮小 SSH 連線問題的範圍。你將判斷問題究竟來自 DNS、網路還是用戶端設定。這種方式能節省時間,並幫助你更快修復問題。

修復常見 SSH 問題

當你發現伺服器無法連線時,需要檢查一些最常見、會阻止 SSH 存取的問題。依照以下步驟,許多問題都可以得到解決。

檢查 SSH 服務狀態

首先你應確認伺服器上的 SSH 服務是否正在執行。如果服務已停止或當掉,你將無法連線。請登入你的伺服器租用控制台,或使用可用的主控台進行操作。執行以下指令檢查服務狀態:

sudo systemctl status ssh

如果服務未處於啟用狀態,可使用以下指令啟動:

sudo systemctl start ssh

如果服務未執行,你可能會看到 connection refused(連線被拒絕)或 connection timeout(連線逾時)等錯誤。下表列出了常見錯誤及其含義:

錯誤類型

說明

主機名稱解析

當 SSH 主機無法對應到網路位址時會出現此類錯誤,通常與 DNS 問題有關。

連線逾時

用戶端在逾時時間內未收到伺服器回應。

連線被拒絕

連線請求已到達 SSH 主機,但主機未接受該連線。

提示:如果你重新啟動 SSH 服務後仍然無法連線,請檢查日誌以取得更多細節。使用 journalctl -u ssh 查看最近的日誌資訊。

檢查防火牆和連接埠設定

防火牆可以保護你的伺服器,但如果設定不正確,也會阻止 SSH。你需要確保 22 連接埠已開放。使用以下指令檢查防火牆規則:

sudo iptables -L -n

或者,如果你使用的是 firewalld:

sudo firewall-cmd --list-all

檢查是否存在允許 22 連接埠流量通過的規則。如果你使用的是其他連接埠,請檢查對應連接埠。如果你看到 connection timeout(連線逾時),表示防火牆可能阻擋了該連接埠。你可以使用以下指令新增一條允許 SSH 的規則:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

說明:一些雲端服務商在控制台中還提供獨立的防火牆設定。請務必同時檢查伺服器本機防火牆和服務商端防火牆。

檢查 SSH 設定檔

SSH 設定檔決定了服務的運作方式。這個檔案中的錯誤設定可能導致你無法連線。使用以下指令開啟設定檔:

sudo nano /etc/ssh/sshd_config

請檢查以下常見問題:

  • Port 22 這一行應與你實際使用的連接埠一致。

  • 如果你希望允許 root 登入,PermitRootLogin 應設定為 yesprohibit-password

  • 如果你使用密碼登入,PasswordAuthentication 應設定為 yes

修改完成後,重新啟動服務:

sudo systemctl restart ssh

提醒:在修改設定檔之前,請務必先做好備份。錯誤的設定可能會把你自己鎖在伺服器之外。

辨識最近的變更

請回想一下,在問題出現之前你做過哪些更改。近期的更新或設定調整很可能會破壞 SSH 存取。以下是一些可能影響 SSH 的變更:

  • 頻寬限制可能會拖慢檔案傳輸速度,讓你誤以為伺服器沒有回應。

  • 變更虛擬檔案系統可能會改變目錄路徑,進而阻礙存取。

  • 升級或降級可能會造成版本不相容。

  • 切換到 IPv6 但未正確設定時,可能會導致逾時。

你還應檢查以下具體要求:

  1. 遠端存取需要使用 SSH Version 2。使用舊版本可能會導致連線失敗。

  2. 如果你從 IPv6 網路連線,必須設定正確的選項以避免逾時。

警示:務必保留你所做變更的記錄。這樣在 SSH 停止運作時,你能更快找到原因。

透過以上步驟,你可以修復許多常見問題,也能更清楚地理解為什麼伺服器無法連線,以及如何恢復存取。

無法 SSH 登入時的恢復方案

當你無法透過 SSH 登入伺服器時,需要儘快採取措施來恢復存取權限。你有多種恢復方式可供選擇,它們可以幫助你重新取得控制權,並避免資料遺失。

透過主控台或安全模式存取

大多數服務商都會提供基於網頁的主控台或安全模式存取方式。即使伺服器無法透過一般方式連線,你仍可以使用這些工具登入。主控台允許你直接在伺服器上排查問題。安全模式通常只載入最少的服務,這有助於你修復設定錯誤或重新啟動服務。

提示:如果你的服務商提供救援模式(rescue mode),可使用它掛載磁碟並修復檔案,而無須啟動完整系統。

重設 Root 密碼或 SSH 金鑰

如果你懷疑是密碼或金鑰出了問題,可以重設 root 密碼或產生新的金鑰。許多控制台都提供密碼重設工具。你也可以在舊金鑰失效時上傳新的公鑰。這一步有助於繞過身分驗證錯誤並恢復存取。

重設 SSH 金鑰的步驟:

  1. 登入到你的控制台。

  2. 找到金鑰管理相關區域。

  3. 上傳新的公鑰,或重設 root 密碼。

  4. 重新啟動服務。

從備份中還原

如果 SSH 故障排除沒有效果,你可能需要從備份中還原伺服器。備份可以保護你的資料,並幫助你從重大錯誤中恢復。請選擇最近且沒有該問題的備份。你可以還原檔案、設定,甚至整個伺服器。

警示:還原之前務必先檢查備份內容,確保其中包含所有重要資料。

攜帶診斷資訊聯絡技術支援

如果你無法自行解決問題,請聯絡你的伺服器租用服務商技術支援團隊。請事先準備好診斷資訊,例如錯誤訊息、日誌以及你已經嘗試過的步驟。技術支援團隊可以幫助你進一步排查問題,並指導你完成恢復。

建議提供的資訊:

  • SSH 用戶端日誌

  • 伺服器狀態報告

  • 防火牆設定

  • 最近的變更

當伺服器無法連線時,透過以上這些恢復方案,你通常能夠解決大多數問題。請保持冷靜,並依序嘗試每一種方法來重新取得存取權限。

依照順序逐步執行每一個排障步驟,你就能更快解決 SSH 問題。請記錄錯誤訊息和所做的更改。如果你無法自行修復,請事先整理好詳細資訊以便聯絡技術支援。定期備份和監控有助於預防未來再次出現類似問題。你可以採用以下備份策略:

  • 異地備份可以在災難發生時保護你的資料。

  • 本機備份資料夾可以幫助你快速還原檔案。

  • 結構化的備份策略可以更好地保障資料安全。

SSH 安全與監控方面的業界標準包括:

功能

說明

強加密

在傳輸過程中保護資料安全。

伺服器身分驗證

在建立連線前驗證伺服器身分。

完整性保護

確保資料在傳輸過程中未被竄改。

壓縮

透過壓縮資料來提升效能。

金鑰交換方法

確保金鑰交換過程安全。

公開金鑰演算法

使用公開金鑰密碼學進行身分驗證。

對稱式加密演算法

使用對稱式演算法對資料進行加密。

訊息驗證演算法

確認訊息的真實性。

雜湊演算法

透過雜湊檢查資料完整性。

常見問題

如果你忘記了 SSH 密碼,該怎麼辦?

你可以透過伺服器租用控制台重設密碼。請查找密碼重設選項。如果你使用的是金鑰驗證,也可以上傳新的公鑰。完成變更後,請重新啟動服務。

如何檢查 SSH 連接埠是否開放?

執行 telnet <server IP> 22,或者查看你的伺服器租用防火牆設定。如果能夠建立連線,則表示連接埠已開放;如果不能,請檢查防火牆規則並開放 22 連接埠。

為什麼 SSH 會提示「connection refused(連線被拒絕)」?

這表示伺服器目前不接受連線。可能是 SSH 服務未啟動,也可能是防火牆阻擋了該連接埠。請啟動服務並檢查防火牆設定。

如果遺失了 SSH 金鑰,還能恢復存取嗎?

可以。你可以透過伺服器租用控制台上傳新的公鑰。有些服務商還允許你重設金鑰或密碼。請務必將備用金鑰保存在安全位置。

伺服器因 SSH 問題無法存取後,最安全的恢復方式是什麼?

從最近的備份中還原是最安全的方法。使用你的服務商提供的備份工具,並在還原前檢查備份是否包含重要檔案。這樣可以保護你的資料,並避免進一步的問題。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Skype