終端機已經登入成功,VS Code 卻再次彈出密碼框。

最快解法:先用 Windows 終端機,以 VS Code 完全相同的帳號、主機位址與連接埠測試普通 SSH。普通 SSH 成功後,再處理金鑰或 VS Code Server;如果已完成認證卻卡在安裝伺服器,便不要繼續重輸密碼。

這篇文章適合:

  • 只有 Windows 電腦,需要用 VS Code 連線遠端 Mac 完成 Python、前端或 iOS 課程的學生。
  • 普通 SSH 可以登入,但 VS Code 仍反覆要求密碼或金鑰口令的初學者。
  • 曾經成功連線,重開 VS Code 後卻卡在安裝伺服器或重新連線的學習者。
01

先分清楚:密碼提示、金鑰失效,還是伺服器循環

同一個「又要輸入密碼」畫面,可能對應完全不同的階段。我們先把問題拆開:

  1. 正常重新驗證:Remote - SSH 不會保存密碼。當工作階段重新建立,重新輸入密碼可能是正常行為。
  2. 金鑰沒有被使用:本機沒有讀到私密金鑰、SSH 設定指向錯誤檔案,或遠端公鑰不匹配。
  3. 認證後流程重來:帳號已通過驗證,但 VS Code Server 安裝或啟動失敗,擴充功能再次發起連線,看起來像密碼驗證循環。

macOS 的「遠程登錄」功能可提供 SSH 存取;VS Code Remote - SSH 也支援連線到已啟用 SSH 的 macOS 主機。設定入口與權限限制,應以Apple 的 macOS 遠程登錄說明Visual Studio Code 的 Remote - SSH 說明為準。

先記住一個類比:SSH 認證像教室門禁。帳號是學生證,私密金鑰是手上的鑰匙,ssh-agent 則像替我們保管鑰匙的櫃台。門已經打開後,繼續換學生證,無法修好教室內的投影機。

02

先做普通 SSH:把帳號問題和 VS Code 問題分開

在 Windows 終端機或 PowerShell 中,使用與 VS Code 完全相同的連線資訊:

ssh 使用者名稱@主機位址 -p 連接埠

若供應方使用預設連接埠,也可以省略 -p。第一次連線時,終端機可能顯示主機指紋確認。主機指紋是「這台伺服器是否仍是原本那台」的門牌核對,不是密碼。只有在確認主機來源後才接受指紋;若突然出現變更警告,先向環境提供方核對,不要直接刪除檢查機制。

成功結果通常是進入遠端 Mac 的命令列,而不是回到本機提示字元。登入後可先執行:

whoami
pwd

兩個結果應分別顯示遠端帳號與遠端目錄。完成後輸入:

exit

安全的排查順序如下:

  • 顯示「Permission denied」:先核對帳號、密碼、私密金鑰和遠端授權公鑰。
  • 顯示連線逾時:核對主機位址、連接埠、校園網路限制與服務是否在線。
  • 顯示主機指紋改變:停止連線,向管理者確認主機是否重建或更換。
  • 顯示遠端登入未啟用:請環境提供方在 Mac 的遠程登錄設定中授權帳號。

不要用關閉主機指紋校驗、公開遠端連接埠、共用帳號或共用私密金鑰來「快速修好」。這些做法可能讓問題暫時消失,卻把帳號和程式碼一起暴露。

03

三種處理路線,應該選哪一條?

目前看到的現象 優先處理方式 驗證結果 何時停止修改
普通 SSH 也登入失敗 核對帳號、主機、連接埠與遠端登入權限 終端機能進入遠端目錄 普通 SSH 未成功前,不排查 VS Code
普通 SSH 成功,VS Code 要密碼 查看 Remote - SSH 輸出與登入終端 確認提示是密碼、金鑰口令或其他驗證 認證成功後,不再重設遠端帳號
金鑰已設定,仍每次輸入密碼 檢查私密金鑰位置、IdentityFile、ssh-agent、公鑰匹配 相同指令可免密碼完成認證 學校電腦禁止代理程式時,改用授權的密碼登入
認證成功,卡在安裝伺服器 查輸出日誌、遠端下載能力與傳輸回退 VS Code Server 完成啟動並開啟資料夾 不把安裝循環當成密碼錯誤

如果只是上課期間偶爾連線,獲得授權後繼續使用密碼未必不可行。若每天重複連線,才值得花時間設定金鑰。決策重點不是「一定要用金鑰」,而是學校電腦是否允許安全保存私密金鑰,以及環境提供方是否接受該金鑰。

04

金鑰沒有自動登入:按本機到遠端的順序檢查

Windows OpenSSH 的金鑰管理方式,可參考Microsoft Learn 的 OpenSSH 金鑰管理文件。我們建議依下列順序排查,避免一開始就修改遠端 Mac:

先確認私密金鑰真的在本機

私密金鑰只應留在受控的個人裝置。不要放進 Git 儲存庫、聊天視窗、課程共享資料夾或截圖。

在 Windows 的 SSH 設定中,常見做法是指定正確的 IdentityFile。設定檔的位置、檔名和權限要以目前 OpenSSH 文件及學校裝置政策為準。若同一台電腦有多組金鑰,最容易發生「看起來已設定,實際讀到另一把」的情況。

再確認 ssh-agent 是否真的載入

ssh-agent 是保管金鑰的本機服務,不是遠端 Mac 上的帳號設定。學校電腦可能因裝置管理政策而禁止啟動或使用它。

因此請先確認:

  • 本機是否允許使用 ssh-agent。
  • 金鑰是否已載入代理程式。
  • VS Code 啟動時,是否使用同一個 Windows 使用者環境。
  • 私密金鑰是否需要輸入口令。

如果代理程式被政策禁止,不要繞過管理限制。可改用已獲授權的密碼登入,或請學校資訊人員提供合規方案。

最後核對遠端公鑰

公鑰放在遠端 Mac 的授權清單,私密金鑰則留在本機。兩者必須是一對。就像門鎖只認某一把鑰匙,檔名叫得相似,不代表能開門。

在這一步需要環境管理者協助時,請只提供公鑰內容或指紋,不要交出私密金鑰。若普通 SSH 加上明確金鑰仍失敗,先保留錯誤訊息,再核對遠端帳號是否正確。

提醒: 如果普通 SSH 已用金鑰成功登入,而 VS Code 仍顯示密碼框,先看輸出面板確認 VS Code 是否使用了不同的主機別名、帳號或連接埠。不要因為一個輸入框就重新產生整套金鑰。

05

FAQ:四個容易誤判的連線情境

為什麼 Visual Studio Code 的 Remote - SSH 每次都要求輸入密碼?

如果普通 SSH 登入成功,重複輸入密碼不一定代表帳號錯誤。Remote - SSH 不會替你保存密碼;重新建立工作階段時,系統可能再次要求驗證。先查看輸入框或輸出面板,確認它要求的是帳號密碼、雙重驗證,還是金鑰口令。

Windows 11 要怎樣讓 VS Code 使用已設定的 SSH 金鑰?

先確認私密金鑰確實在本機,再檢查 SSH 設定檔是否指向正確的 IdentityFile。若學校電腦允許使用 ssh-agent,載入金鑰後再以同一組主機、帳號和連接埠測試普通 SSH。私密金鑰不可上傳到程式碼儲存庫或傳給同學。

普通 SSH 可以連線,但 VS Code 仍然連不上 Mac,應該怎麼辦?

先在 VS Code 的 Remote - SSH 輸出面板找出失敗階段。若普通 SSH 與 VS Code 使用的主機名稱、帳號或連接埠不同,兩者其實不是同一個測試。若認證已完成,請改查 VS Code Server 安裝、遠端下載能力和連線日誌,不要繼續重設 Mac 帳號。

VS Code 一直顯示正在安裝伺服器,是密碼問題嗎?

不一定。密碼提示屬於認證階段;顯示正在安裝或啟動 VS Code Server,通常代表認證可能已經通過,問題轉移到遠端檔案、下載網路、權限或本地傳輸回退。請先保留輸出面板內容,再按照官方 Remote - SSH 排錯方向處理。

06

認證成功後仍在安裝伺服器:改查第二階段

VS Code 連線遠端 Mac 時,認證只是進入門口。Remote - SSH 還需要在遠端準備 VS Code Server,並讓本機編輯器與它建立工作階段。官方說明與排錯入口可參考Remote - SSH 的連線與驗證流程官方故障排查指南

我們建議照這個順序操作:

  1. 在 VS Code 執行 Remote - SSH 的「顯示記錄」或開啟輸出面板。
  2. 確認最後一次成功的是「認證」,還是只完成了主機連線。
  3. 若日誌顯示伺服器下載或解壓縮失敗,檢查遠端 Mac 是否可存取所需網路與目錄。
  4. 若顯示權限錯誤,確認遠端帳號是否有自己的家目錄和學習資料夾。
  5. 若本機傳輸回退失敗,檢查 Windows 網路、學校防火牆與 VS Code 的連線日誌。
  6. 關閉目前連線,再用相同主機設定重新連線,觀察錯誤是否停在同一階段。

不要自行下載來歷不明的 VS Code Server 安裝包,也不要執行網路上無法核對來源的修復腳本。伺服器元件由 VS Code 連線流程管理;擴充功能無法載入、資料夾打不開和單純密碼提示,應分開記錄,不能全部歸因於 SSH 金鑰。

07

用一次完整重連,確認問題真的已修好

排錯完成後,不要只以「密碼框消失」作為成功標準。請勾選以下驗收項目:

  • [ ] 關閉 VS Code,再重新開啟。
  • [ ] 使用同一個 Remote - SSH 主機項目連線。
  • [ ] 確認輸出面板沒有重複認證或伺服器安裝循環。
  • [ ] 開啟遠端 Mac 上原本的專案資料夾。
  • [ ] 在 VS Code 遠端終端機執行 whoamipwd
  • [ ] 新增一個測試檔案,儲存後重新開啟。
  • [ ] 執行課程需要的 Python、前端或其他編譯命令。
  • [ ] 關閉連線後再次進入,確認檔案仍在預期的遠端目錄。

若只有密碼提示反覆出現,但登入和專案操作都正常,可先使用密碼方案;若希望減少日常輸入,再在得到授權後設定金鑰。若學校電腦不能啟動 ssh-agent,應保留現有合規方法,不要繞過裝置管理。若每次都卡在 VS Code Server,則應把輸出日誌交給環境提供方,而不是無限次重裝擴充功能。

完成驗收後,建議把課程需要的連線方式、專案保存位置、帳號權限和求助窗口列成一頁清單。若現有主機沒有穩定 SSH、獨立帳號或可控的學習目錄,Windows 使用者可以先查看遠端 Mac 雲端方案的交付資訊,再判斷是否適合本學期使用。MESHLAUNCH 提供的是遠端實體 Mac 存取;但若課程需要長期固定重負載、實體 USB 裝置或完全離線工作,自購 Mac 仍可能更合適。

相較之下,臨時使用學校共用電腦常受安裝權限、網路政策和帳號共用限制影響;自行架設 macOS 虛擬機則可能遇到相容性、效能與維護成本。若只是需要一個可控的遠端學習環境,先租用 MESHLAUNCH 的 Mac,再按本次驗收結果決定是否長期使用,通常比不停重灌 VS Code 或修改遠端帳號更容易控制風險。

若要開始,請先準備好課程要求的帳號、主機位址、連接埠與授權方式,再從繁體中文遠端 Mac 入口查看可用的連線資訊。