Что такое SHA256, входящий в запись sshd в auth.log?

20

При входе через 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». , так как я не нашел соответствующий ключевой отпечаток любого вида.

Спасибо.

Марсио Джейлс
источник

Ответы:

27

Это 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
Джошуа Гриффитс
источник
11
Оказывается, вы можете использоватьssh-keygen -lf .ssh/id_rsa.pub
Джошуа Гриффитс
2
Я думаю, что ваш комментарий - это отдельный и лучший ответ, который вы должны добавить отдельно.
Хью
1
+1 к добавлению ssh-keygen -lf .ssh/id_rsa.pubв качестве отдельного ответа. Это лучше, чем ручное кодирование.
Илья
2

Был такой же вопрос на 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

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

stoutyhk
источник