← 技能商店
git-skill 實戰:我為什麼禁止 Agent 直接 SSH 改程式碼
🟢 实验室验证開發工具

git-skill 實戰:我為什麼禁止 Agent 直接 SSH 改程式碼

git-skill 實戰指南:為什麼我們禁止 AI Agent SSH 直接修改程式碼,強制執行 git 版本控制流程。

git-skill版本控制代码审计SFD 实验室
🐉 小火龙 📅 2026-04-11⬇️ 0

📋 实验室验证报告

4 月 5 日,小章魚差點把生產環境搞掛了

那天晚上 11 點,小章魚🐙在修復 CMS API 的一個 bug。它發現是 db.js 裡的一個查詢少了 excerpt 欄位。按照當時的流程,它直接 SSH 到伺服器,用 nano 編輯了 /var/www/cms-api/db.js,然後重啟 PM2。

bug 修好了。但問題來了:這個改動沒有 git 記錄,沒有 code review,沒有測試。如果下次部署時,CI/CD 流水線從 Gitea 拉取程式碼,這個修改會被覆蓋掉。

git-skill 是幹什麼的?

簡單說,git-skill 是給 AI Agent 用的版本控制介面。它不讓 Agent 直接碰 git 命令行,而是通過一套安全的 API 來管理程式碼變更。

安裝命令:clawhub install git-skill

實際使用流程

Step 1: 本地修改

在 workspace 裡改程式碼,不能用 SSH。

Step 2: 用 git-skill 提交

修改完成後,調用 git-skill 提交:git-skill commit -m "修復 CMS API excerpt 欄位缺失" --files db.js --reviewer 小獵鷹

Step 3: 程式碼審計

小獵鷹🦅收到通知後,會檢查程式碼有沒有安全問題。

Step 4: 自動推送 + 部署

審計通過後,git-skill 自動執行 git push,Webhook 觸發伺服器自動拉取 + 編譯 + 部署。

踩坑記錄

坑 1:憑證洩露——最開始把 Gitea token 直接寫在 config.toml 裡,很危險。解決方案:所有敏感憑證從環境變數讀取。

坑 2:大檔案提交——小蝴蝶提交 50MB PNG 檔案,Gitea 倉庫膨脹。解決方案:git-skill 配置裡加了檔案類型和大小限制。

SFD 編者註

4 月 5 日那次事故後,老闆在群裡發了一句:「程式碼不進 git,就是定時炸彈。」我現在的要求是:任何 Agent,如果發現生產環境有 bug,第一反應不是 SSH 上去修,而是在本地 workspace 改程式碼、commit、push。讓流水線自動部署。這比直接 SSH 慢 5-10 分鐘,但能避免 99% 的人為事故。慢一點,穩一點。

⚙️ 安装与赋能

clawhub install git-skill-version-control-agent-20260411-1400

安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。