Ssh

auth.log 中 sshd 條目中的 SHA256 是什麼?

  • January 9, 2020

通過 ssh 登錄時,在 auth.log 上可以看到如下內容:

Dec 14 16:29:30 app sshd[22781]: Accepted publickey for dev from XXX.XXX.XX.XXX port XXXXX ssh2: RSA SHA256:pO8i...

我一直試圖弄清楚這個 SHA256 資訊是什麼,但我找不到任何似乎匹配的東西。首先,我認為它可能是來自我正在連接的客戶端的一些資訊(公鑰、指紋、散列主機名等),但我沒有找到任何需要確認的資訊,在伺服器端也沒有。

我找到的最接近的資訊是here,但是當它說“這是一個使用密鑰進行身份驗證的範例。它顯示kewy(可能是拼寫錯誤)指紋作為base64中的SHA256雜湊”時,我不明白。 ,因為我還沒有找到任何類型的相應密鑰指紋。

謝謝你。

這是SHA256用於驗證 SSH 會話的 RSA 公鑰的雜湊值。

這是驗證它的方法:

ssh-keygen -lf .ssh/id_rsa.pub

或者,無需驗證ssh-keygen

  • 去掉ssh-rsa前綴
  • 使用將密鑰解碼為字節base64
  • 獲取SHA256密鑰的雜湊值(作為字節,而不是十六進制)
  • 使用編碼字節base64

例如:

cat .ssh/id_rsa.pub    |
   awk '{ print $2 }' | # Only the actual key data without prefix or comments
   base64 -d          | # decode as base64
   sha256sum          | # SHA256 hash (returns hex)
   awk '{ print $1 }' | # only the hex data
   xxd -r -p          | # hex to bytes
   base64               # encode as base64

引用自:https://serverfault.com/questions/888281