如何安全地與團隊共享 SSH 金鑰和憑證
SSH 金鑰等同伺服器的完整存取權。了解為什麼用 Slack 或 Email 傳金鑰很危險,以及如何用設有到期時間的秘密備忘錄,安全地一次性交付金鑰。

如何安全地與團隊共享 SSH 金鑰和憑證
「SSH 金鑰直接用 Slack 傳給我就好。」每個開發團隊都聽過這句話。伺服器存取刻不容緩、新成員要設定開發環境、再過幾分鐘就要部署,偏偏有人手上沒有金鑰。
但就是這麼一句請求,可能成為一起嚴重資安事故的開端。
為什麼共享 SSH 金鑰特別危險
SSH 金鑰和一般密碼不一樣,它給的是整台伺服器的完整存取權。
| 比較項目 | 密碼 | SSH 金鑰 |
|---|---|---|
| 權限範圍 | 特定帳號 | 整台伺服器 |
| 外洩時的影響 | 僅限該帳號 | 伺服器上的所有資料 |
| 更換難易度 | 可立即變更 | 重新產生金鑰並更新所有伺服器 |
| 雙重驗證 | 可使用 | 金鑰本身就是驗證 |
SSH 金鑰一旦外洩,伺服器上的每個檔案、每個資料庫、每一行程式碼都會曝光。這和單一密碼外洩有本質上的差別。
團隊何時需要共享 SSH 金鑰
現實中,確實有正當的共享理由。
- 共用伺服器存取:全隊都需要存取的測試(Staging)或正式環境伺服器
- 部署金鑰:CI/CD 流水線使用的金鑰
- SSL 憑證:負責人異動時的憑證更新
- API 密鑰:串接第三方服務的驗證資訊
- 資料庫帳密:緊急事故處理
危險的共享方式
1. Slack 或 Discord 私訊
這兩項服務都沒有使用端對端加密,聊天紀錄預設會在伺服器上保存很長一段時間。對話中的任何人只要搜尋「ssh」或「key」,就能翻出之前分享過的金鑰。員工離職時帳號可以停用,但他們收發過的金鑰仍會留在工作區的紀錄中。
2. Email
郵件會永久封存在郵件伺服器上,一旦被轉寄就再也控制不了。只要郵件伺服器被入侵一次,所有寄出過的金鑰都會曝光。
3. 共用的 Google 雲端硬碟或 Notion
很難做到細緻的權限控管。檔案同步之後,本機副本會留在各個裝置上。有人離開團隊時,要收回所有副本幾乎不可能。
4. 提交到 Git 儲存庫
這是最危險的做法。金鑰會永遠留在 Git 歷史中,就算刪掉檔案,也能從歷史紀錄中還原。如果儲存庫是公開的,金鑰就等於暴露在全世界面前。
安全的共享方式
方法 1:LOCK.PUB 秘密備忘錄(最適合一次性交付)
需要交付金鑰一次時,這是最實際的做法。
1. 在 LOCK.PUB 建立秘密備忘錄
2. 貼上 SSH 金鑰或憑證內容
3. 設定一組強密碼
4. 把到期時間(Pro)設得越短越好(1~4 小時)
5. 連結用 Slack 傳,密碼用電話告知
6. 對方把金鑰存到本機後,連結就到期
優點:
- 金鑰不會以明文存放在任何持久性的伺服器上
- 到期後連結就無法再開啟
- 聊天紀錄裡不會留下金鑰的明文
方法 2:密鑰管理服務(適合較大的團隊)
使用 HashiCorp Vault、AWS Secrets Manager 或 Google Secret Manager 等專用工具。
- 內建權限控管與稽核紀錄
- 可以自動輪換金鑰(Vault 和 AWS 內建此功能;Google Secret Manager 只會發送輪換通知,輪換本身需要自行建置)
- 缺點是成本和設定複雜度較高
方法 3:SSH 憑證授權中心(長期解法)
不再共用金鑰,而是架設 SSH CA,為每位使用者簽發個別憑證。
- 從根本上免除共享金鑰的需要
- 可以針對個人管理存取權
- 初期建置成本較高
方法 4:每人一把金鑰(最推薦)
只要可行,就為每個人簽發個別金鑰,而不是全隊共用同一把。
原則:共用金鑰 < 個人金鑰
共用金鑰外洩 → 波及整個團隊
個人金鑰外洩 → 只影響該使用者
不得不共享時的檢查清單
如果無法採用個人金鑰、非共享不可,請照著這份清單做。
交付前
- 金鑰的權限範圍是否已設到最小?
- 唯讀金鑰是否就夠用?
- 能不能加上 IP 限制?
交付時
- 金鑰和密碼是否透過不同管道傳送?
- 到期時間是否已設到實務上最短?
- 對方確認收到後,傳送者能否刪除原始檔?
交付後
- 確認對方已安全保存金鑰
- 確認分享的連結或備忘錄已經到期
- 監控金鑰的使用紀錄
金鑰輪換週期
定期輪換金鑰,可以縮短任何一把外洩金鑰的有效期間。
| 金鑰類型 | 建議輪換週期 |
|---|---|
| 正式環境伺服器金鑰 | 90 天 |
| 部署金鑰 | 90 天 |
| SSL 憑證 | 每次續約時 |
| API 密鑰 | 90 天 |
| 開發/測試環境金鑰 | 180 天 |
DevOps 團隊資安檢查清單
- 所有伺服器是否都使用個人 SSH 金鑰?
- 如果有共用金鑰,是否已設定 IP 限制?
- 離職員工的金鑰是否會立即停用?
- 是否訂有金鑰輪換時程?
- 是否曾把 SSH 金鑰提交到 Git 儲存庫?
- 聊天紀錄裡是否有以明文保存的金鑰?
- 傳遞機密時是否使用會到期的管道?
總結
SSH 金鑰和憑證是伺服器安全的骨幹。用 Slack 私訊或 Email 傳送,就像把家裡的鑰匙釘在公布欄上。能發個人金鑰就發個人金鑰;非共享不可時,請使用到期時間盡可能短的秘密備忘錄。
現在就建立秘密備忘錄,安全地交付 SSH 金鑰。