安裝方式
keymitt 在 macOS、Windows 與 Linux 上都是一個獨立的執行檔。
一鍵安裝
macOS 與 Linux:
curl -fsSL https://keymitt.walisayu.com/install.sh | shWindows(PowerShell):
irm https://keymitt.walisayu.com/install.ps1 | iex安裝程式會依你的作業系統與 CPU 挑選版本,從 GitHub Release 下載、驗證 SHA-256 校驗碼,再安裝單一的 keymitt 執行檔——macOS 與 Linux 裝到 ~/.local/bin(root 則是 /usr/local/bin),Windows 裝到 %LOCALAPPDATA%\Programs\keymitt 並加進使用者的 PATH。它會拒絕明文 HTTP、路徑可疑的壓縮檔與校驗碼不符的下載。 指定版本用 sh -s -- --version v0.1.0(或 $env:KEYMITT_VERSION = 'v0.1.0'),指定目錄用 --bin-dir(KEYMITT_INSTALL_DIR)。
每個版本都附有簽章的建置來源證明(build provenance)。想自己驗證壓縮檔:
gh attestation verify keymitt-v0.1.0-aarch64-apple-darwin.tar.gz --repo walisayu/keymitt從原始碼建置
需要 Rust 1.85 以上(rustup.rs)。
git clone https://github.com/walisayu/keymitt.git
cd keymitt
cargo install --path .http_request 使用系統的 curl,macOS、Windows 10 以上與多數 Linux 發行版都內建。
檢查安裝
keymitt doctordoctor 會檢查 keymitt 的家目錄、政策檔、鑰匙圈(寫入、讀回再刪除一筆探測項目)、會用哪些核准方式,以及 curl 在不在。加上 --approval 會跳出一次測試用的視窗。
macOS
- 密碼存在你的登入鑰匙圈,服務名稱是
keymitt。 - 核准使用 LocalAuthentication:有 Touch ID 就用 Touch ID,否則用登入密碼。沒有 Touch ID 的 Mac (例如 Mac mini)會跳出輸入密碼的視窗。
- 重新建置或重新安裝執行檔後,macOS 可能會再問一次
keymitt能否存取它的鑰匙圈項目。請選「永遠允許」。
Windows
- 密碼存在認證管理員,每組密碼最多 2560 位元組。
- 核准使用 Windows Hello(PIN、指紋或臉部)。還沒設定的話,請到「設定 → 帳戶 → 登入選項」設定 Windows Hello PIN。
- 沒有 Windows Hello 時,keymitt 會退回「是/否」訊息框——這是弱驗證,只確認意圖、不驗證身分。 在政策檔設定
allow_weak = false可以禁止它。
Linux
密碼透過 D-Bus 存在 Secret Service——GNOME Keyring 或 KWallet。桌面環境通常已經有。沒有桌面的伺服器要在 D-Bus 工作階段裡自己啟動 GNOME Keyring,而且要給它一組非空白的密碼——空白密碼會讓存入密碼失敗:
shprintf 'your-keyring-password' | gnome-keyring-daemon --unlock --components=secrets強驗證核准使用 polkit,需要先安裝一次 keymitt 的 polkit 動作:
shkeymitt setup polkit # 印出動作檔與安裝指令 sudo install -m 644 dev.keymitt.approve.policy /usr/share/polkit-1/actions/之後每次使用,都會透過桌面的 polkit 代理程式要求輸入你自己的密碼(
auth_self,不快取)。沒有 polkit 時,keymitt 可以退回
zenity或kdialog詢問,再退回從終端機核准。兩者都是弱驗證。
keymitt 把檔案放在哪
| 平台 | 預設家目錄 |
|---|---|
| macOS、Linux | ~/.config/keymitt(或 $XDG_CONFIG_HOME/keymitt) |
| Windows | %APPDATA%\keymitt |
設定 KEYMITT_HOME 可以改用其他目錄。家目錄裡放的是 policy.toml、audit.jsonl 與等待中的 CLI 核准——絕不放密碼值。