Windows SSH Agent 設定教學:開機自動啟動、載入 SSH 私鑰與使用 ssh-add

| Application program | 0 Reads

在 Windows 上使用 SSH 連線遠端伺服器或 Git 儲存庫時,如果使用私鑰進行身分驗證,通常需要透過 -i 參數指定私鑰檔案。

例如:

ssh -i "C:\SSH\private-key.pem" user@example-server

如果希望由系統統一管理 SSH 私鑰,並讓後續 SSH 連線能自動使用已載入的金鑰,可以使用 Windows 內建的 OpenSSH Authentication Agent(ssh-agent)。

以下介紹三條常用的 PowerShell 命令,分別用於設定 SSH Agent 自動啟動、立即啟動服務,以及將 SSH 私鑰加入 Agent。

一、設定 SSH Agent 開機自動啟動

首先,以系統管理員身分開啟 PowerShell,執行:

Set-Service -Name ssh-agent -StartupType Automatic

各參數的作用如下:

參數 說明
Set-Service 修改 Windows 服務的設定。
-Name ssh-agent 指定要修改的服務為 SSH Agent。
-StartupType Automatic 將服務的啟動類型設定為「自動」。

執行結果:Windows 會將 SSH Agent 設定為開機自動啟動。

需要注意,這條命令只會修改服務的啟動設定,不會立即啟動服務。

二、立即啟動 SSH Agent

接著,在系統管理員 PowerShell 中執行:

Start-Service -Name ssh-agent

這條命令會立即啟動 Windows 的 SSH Agent 服務,不需要重新開機。

  • Start-Service:啟動指定的 Windows 服務。
  • -Name ssh-agent:指定啟動 SSH Agent。

前兩條命令的差異是:

命令 作用
Set-Service 設定服務以後開機時自動啟動。
Start-Service 立即啟動目前尚未運行的服務。

三、使用 ssh-add 載入 SSH 私鑰

SSH Agent 啟動後,就可以把現有的 SSH 私鑰加入 Agent。

使用平常操作 SSH 的同一個 Windows 帳號開啟 PowerShell,執行:

ssh-add "C:\SSH\private-key.pem"

其中:

  • ssh-add:將 SSH 私鑰加入 SSH Agent。
  • C:\SSH\private-key.pem:範例私鑰檔案路徑,實際使用時需要替換為自己的私鑰位置。

執行結果:如果私鑰格式有效且載入成功,SSH Agent 就能管理並使用這把金鑰進行 SSH 身分驗證。

之後透過 SSH 連線時,SSH 客戶端便可以使用 Agent 中的金鑰,而不必每次手動指定私鑰檔案。實際使用哪把金鑰,仍取決於 SSH 客戶端的設定與遠端伺服器的驗證要求。

如果私鑰設定了密碼(Passphrase),執行 ssh-add 時可能需要輸入該密碼。

四、如何確認 SSH Agent 是否正常運作?

可以透過以下命令檢查 SSH Agent 的服務狀態:

Get-Service -Name ssh-agent

如果輸出中的 Status 顯示 Running,代表服務正在執行。

接著使用:

ssh-add -l

這條命令會列出目前 SSH Agent 中已載入金鑰的指紋資訊。

如果能看到對應金鑰,表示該金鑰已經加入 Agent。

需要注意,Windows OpenSSH Agent 通常會持久保存加入的金鑰,因此重新啟動電腦後,這些金鑰仍可能繼續可用。

五、如何移除 SSH Agent 中的金鑰?

如果不再需要某把金鑰,可以執行:

ssh-add -d "C:\SSH\private-key.pem"

這條命令會嘗試將指定金鑰從 SSH Agent 中移除。

如果需要移除 Agent 管理的所有金鑰,則可以執行:

ssh-add -D

注意:上述操作只會移除 SSH Agent 中的金鑰紀錄,不會刪除磁碟上的原始私鑰檔案。

六、安全性注意事項

  • SSH Agent 不會因為執行 ssh-add 就自動把私鑰上傳到遠端伺服器。正常 SSH 驗證會透過私鑰進行簽章,而不是直接傳送私鑰內容。
  • 同一個 Windows 使用者帳號下,有權存取 SSH Agent 的程式,也可能使用 Agent 中的金鑰進行身分驗證。
  • 即使使用 SSH Agent,原始私鑰檔案仍應妥善保管,避免被其他人或不受信任的程式讀取。
  • 如果私鑰具有正式環境伺服器的管理權限,應特別謹慎管理 Agent 與 Windows 帳號的存取權限。

七、總結

Windows 上設定 SSH Agent,主要只需要三條命令:

Set-Service -Name ssh-agent -StartupType Automatic

Start-Service -Name ssh-agent

ssh-add "C:\SSH\private-key.pem"
命令 主要作用
Set-Service 設定 SSH Agent 開機自動啟動。
Start-Service 立即啟動 SSH Agent 服務。
ssh-add 將現有的 SSH 私鑰加入 Agent 管理。

簡單來說,第一條負責設定自動啟動,第二條負責立即啟動服務,第三條負責讓 SSH Agent 管理指定的私鑰。

完成設定後,日常使用 SSH 時便可以透過 Agent 進行金鑰驗證,減少反覆指定私鑰路徑的操作。

This article was last edited at