查詢 SFTP 伺服器的 SSH 主機金鑰指紋
取得任何 SFTP 伺服器的 SSH 主機金鑰指紋。不需要帳密,就能查看金鑰類型,以及 MD5 和 SHA256 兩種指紋。
什麼是主機金鑰指紋?
每台 SSH/SFTP 伺服器都有一組自己的主機金鑰。指紋是公開金鑰的簡短雜湊值,可以用來確認你連上的是正確的伺服器,而不是冒充者。
SSH 用戶端會把主機金鑰指紋存在 known_hosts 檔案裡。第一次連線時會請你確認指紋,之後的連線則自動比對。指紋改變是一個警訊,可能是中間人攻擊,也可能是伺服器重建了。
SHA256 與 MD5
SHA256 指紋(現代 OpenSSH 的預設)比較安全,也較能抵抗碰撞。有些舊的用戶端仍然顯示 MD5 指紋。兩者指的是同一把金鑰。
確認過指紋了嗎?接下來交給每次連線都會檢查主機金鑰的 SFTP 用戶端就好:FTPie 每次都會驗證伺服器的身分,金鑰改變時會警告你。
自己核對指紋
用來比對的值應該由伺服器管理者提供,而不是從你正要驗證的那條連線取得。在伺服器上執行 ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub,就會印出它 Ed25519 金鑰的 SHA256 指紋;RSA 和 ECDSA 金鑰就在同一個資料夾裡。
在 PC 上,Windows 10 和 11 內建的 OpenSSH 工具就能做到和這個頁面一樣的事。在命令提示字元中,ssh-keyscan sftp.example.com > keys.txt 會存下伺服器的公開金鑰,ssh-keygen -lf keys.txt 則列出它們的指紋。如果你收到的指紋長得像 a1:b2:c3:...,而不是 SHA256:...,就加上 -E md5 改用 MD5 格式顯示。指紋無法在兩種格式之間轉換,請用相同格式比對。
伺服器通常有好幾把主機金鑰(Ed25519、ECDSA 和 RSA),每一把都有自己的指紋。指紋對不上,很多時候只是金鑰類型不同,所以請比對你的用戶端實際收到的那種類型。
如果伺服器重建過,而新金鑰確實是真的,請用 ssh-keygen -R sftp.example.com 刪除舊的紀錄,下次連線時再接受新的指紋。