SSH 公鑰檢查器
解析公鑰與 authorized_keys,算出 SHA-256 指紋
金鑰內容
貼上一行公鑰、整份 .pub 檔,或整個 authorized_keys。全程在瀏覽器內解析,不會連到任何伺服器,也不會把內容送出去。
偵測到私鑰,已停止解析
本工具只處理公鑰。私鑰的內容不會顯示、不會解析,也沒有離開過這台電腦 —— 但既然它被貼進過瀏覽器,建議還是換一把金鑰比較保險。
解析結果
指紋是 SHA-256(公鑰內容),跟 ssh-keygen -lf 算出來的完全一樣。註解與 authorized_keys 的限制都不影響指紋 —— 所以同一把金鑰換個註解仍然認得出來。
重複的金鑰
指紋相同就是同一把金鑰。限制(options)不一樣時本工具不會建議合併 —— 那可能一筆限制來源位址、一筆沒有,併掉等於悄悄放寬權限。
指紋核對
把伺服器上或同事給你的指紋貼進來,跟上面解析出來的逐一比對。完整值精確比較,有沒有 SHA256: 前置字串都認。
使用說明 6
指紋怎麼算的,以及這支工具刻意不替你決定的事
指紋算的是金鑰本身,不是那一行文字
SHA256: 加上 base64(sha256(公鑰內容)),尾端的等號要去掉 —— 這就是 ssh-keygen -lf 的格式。算的是 Base64 解出來的那段二進位金鑰,所以註解與 authorized_keys 的限制都不影響它。
同一把金鑰換個註解仍然認得出來
註解通常是 user@host,不在金鑰內容裡。所以「同一把金鑰貼了兩次、註解不一樣」這種情況抓得出來 —— 那是最常見的重複。
私鑰一律不處理
看到 BEGIN OPENSSH PRIVATE KEY 這一類標記就整份停止解析,不顯示、不記錄。要檢查的是 .pub 那一個檔案 —— 副檔名少打一個 .pub 是很常見的手滑。
限制不同的重複不會建議合併
一筆限制了來源位址、一筆沒有,指紋卻一樣 —— 併掉等於悄悄放寬權限。這種情況只會列出來請你自己看,工具不替你決定。
ssh-rsa 不等於不安全
ssh-rsa 是金鑰型別,不是簽章演算法。現在的 OpenSSH 用同一把 RSA 金鑰跑 rsa-sha2-256/512,看到 ssh-rsa 不代表還在用 SHA-1。
檢查範圍寫在畫面上
OpenSSH 憑證(*-cert-v01)與 FIDO 金鑰(sk-*)認得出來但不解析內容,DSA 不支援。ECDSA 只檢查編碼,沒有驗證那個點在不在曲線上 —— 沒驗的事就寫沒驗。