Назад | Перейти на главную страницу

Что такое SHA256 для записи sshd в auth.log?

При входе в систему через 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, но не смог найти ничего подходящего. Сначала я подумал, что это может быть какая-то информация от клиента (открытый ключ, отпечаток пальца, хешированное имя хоста и т. Д.), С которого я подключаюсь, но я не нашел ничего для подтверждения, ни на стороне сервера.

Самая близкая информация, которую я нашел, это Вот, но я не понял, когда он говорит: «А вот пример использования ключа для аутентификации. Он показывает отпечаток kewy (возможно, неправильное написание) как хэш SHA256 в base64.», поскольку я не нашел соответствующего любой отпечаток ключа.

Спасибо.

Это SHA256 хеш открытого ключа RSA, который использовался для аутентификации сеанса SSH.

Вот как это проверить:

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

Был тот же вопрос о macOS 10.13.6, где для вашего ответа просто потребовалась пара настроек:

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

Большое спасибо.