SSH 連線教學:用密碼登入和放金鑰兩種方式,從零開始

掃毒、重裝核心、改權限、查 log,很多 WordPress 的維護操作沒辦法在後台做,必須 SSH 進伺服器。

如果你從來沒用過 SSH,這篇帶你從零開始。兩種連線方式都教:打密碼的和放金鑰的。


SSH 是什麼

SSH 全名 Secure Shell。你的電腦透過加密連線連到遠端伺服器,然後在命令列直接操作伺服器上的檔案系統。

可以把它想成「遠端遙控你的主機」。打字下指令,主機執行,結果回傳到你的畫面上。


你需要準備什麼

連線前要先跟主機商拿到三個東西:

  • 伺服器 IP:例如 123.456.78.90
  • SSH 埠號:預設是 22,有些主機商會改成其他數字(RunCloud 常用 22、Cloudways 用 22)
  • 使用者帳號:通常是 root 或主機商指定的帳號(RunCloud 用 runcloud、Cloudways 用 master)

這些資訊通常在主機商的面板裡可以找到。找不到就問客服。


方式一:密碼登入

最簡單的方式。每次連線都要打密碼,但設定零門檻。

Windows 使用者

Windows 10 以上內建 OpenSSH,打開「終端機」(搜尋 Terminal 或 PowerShell)就能用。

輸入以下指令(替換成你的資訊):

ssh -p 埠號 帳號@伺服器IP

實際範例:

ssh -p 22 root@123.456.78.90

第一次連線會問你 Are you sure you want to continue connecting (yes/no)?,打 yes 按 Enter。

然後會要你輸入密碼。打密碼的時候畫面上不會出現任何字元(連 * 都沒有),這是正常的。打完直接按 Enter。

看到類似 root@server:~# 的提示符號就是連上了。

Mac 使用者

打開「終端機」(在 應用程式 → 工具程式 裡,或用 Spotlight 搜尋 Terminal)。指令跟 Windows 一樣:

ssh -p 22 root@123.456.78.90

斷線

做完事要離開,打 exit 按 Enter 就會斷線。


方式二:SSH 金鑰登入

安全性比密碼高很多,設定完之後連線不用再打密碼。建議長期使用的話改成金鑰。

原理是:你的電腦產生一對金鑰(公鑰 + 私鑰)。公鑰放到伺服器上,私鑰留在你的電腦。連線時伺服器用公鑰驗證你的私鑰,對得上就放行。

產生金鑰

在你的電腦(不是伺服器)的終端機執行:

ssh-keygen -t ed25519 -C "你的email"

會問你存檔位置,直接按 Enter 用預設路徑就好。然後問你要不要設 passphrase(金鑰的額外密碼),可以設也可以留空直接按 Enter。

產生完後,你的電腦上會多兩個檔案:

  • ~/.ssh/id_ed25519 — 私鑰(絕對不能給別人)
  • ~/.ssh/id_ed25519.pub — 公鑰(要放到伺服器上的)

把公鑰放到伺服器

最簡單的方式,一個指令搞定:

ssh-copy-id -p 埠號 帳號@伺服器IP

這會要你輸入一次密碼(最後一次),然後自動把公鑰加到伺服器的 ~/.ssh/authorized_keys 檔案裡。

Windows 沒有 ssh-copy-id?

Windows 的 OpenSSH 不附 ssh-copy-id。改用這個指令(一行貼上去):

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 埠號 帳號@伺服器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

也可以在主機商面板直接貼公鑰。RunCloud、Cloudways 都有 SSH Key 的設定頁面,把 id_ed25519.pub 的內容複製貼進去就好。

測試金鑰登入

ssh -p 埠號 帳號@伺服器IP

如果不再問你密碼就直接進去了,金鑰登入設定成功。


連不上怎麼辦

Connection refused

埠號不對,或伺服器的 SSH 服務沒開。先確認主機商面板裡的 SSH 埠號。有些共用主機預設不開 SSH,要手動啟用。

Connection timed out

IP 不對,或防火牆擋了你的 IP。有些主機商的防火牆預設只允許特定 IP 連 SSH,要在面板加白名單。

Permission denied (publickey)

伺服器不接受密碼登入,只接受金鑰。要走金鑰登入的流程,或在主機商面板開啟密碼登入(不建議長期開)。

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

你之前連過這個 IP,但伺服器的指紋變了(可能是重灌或換了主機)。確認是你自己的伺服器後,刪掉舊的記錄:

ssh-keygen -R 伺服器IP

然後重新連線。


連上之後的第一件事

確認你在對的地方。跑一下這個指令看你的網站目錄在不在:

ls /home/runcloud/webapps/

路徑因主機商而異。RunCloud 通常在 /home/runcloud/webapps/網站名稱,Cloudways 在 /home/master/applications/xxx/public_html,cPanel 在 /home/帳號/public_html。

看到 wp-config.php 就代表找對了:

ls /home/runcloud/webapps/你的網站名稱/wp-config.php

貼給你的 AI 用

第一次用 SSH 連不上?把下面這段貼給 ChatGPT 或 Claude,他會幫你排查:

我第一次用 SSH 連線到我的 WordPress 主機,連不上。

我的環境:
- 作業系統:[Windows / Mac]
- 主機商:[填入,例如 RunCloud / Cloudways / SiteGround]
- 伺服器 IP:[填入]
- SSH 埠號:[填入,不確定就寫「不確定」]
- 帳號:[填入,不確定就寫「不確定」]

我輸入的指令是:
[把你打的指令貼在這裡]

出現的錯誤訊息是:
[把錯誤訊息貼在這裡]

請幫我判斷問題出在哪裡,一步一步引導我連上。

SSH 操作注意事項

SSH 指令送出去就是送出去了,沒有 Ctrl+Z。操作前請注意:

  • AI 給的指令,跑之前自己看一遍,確認路徑和檔名是對的再按 Enter。
  • 不要整段複製貼上一口氣跑完。一次一個指令,看到結果再下一步。
  • 刪除和覆蓋操作不可逆。備份沒做完之前,不要動任何清除步驟。
  • 不確定的時候就停下來問。問 AI、問主機商、問會的朋友,都比直接跑好。

搞不定?讓專人處理

WP 中毒救援 $5,500 起 | 外掛衝突排查含版面復原 $4,000 起

了解服務方案 →
文章分享