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

Какое значение имеет пользователь / хост в конце файла открытого ключа SSH?

Я не могу понять, почему файл открытого ключа SSH, созданный ssh-keygen в конце есть пользователь и хост.

Пример: id_rsa.pub

ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Обратите внимание на root@mydomain в конце файла.

Если я могу использовать открытый ключ где угодно с любым пользователем для аутентификации с использованием моего закрытого ключа, какое значение имеет root @ mydomain в процессе аутентификации?

Или это просто заполнитель, чтобы понять, кем он был выпущен?

Это поле является комментарием и может быть изменено или проигнорировано по желанию. Он установлен на user@host по умолчанию ssh-keygen.

В OpenSSH sshd(8) страница руководства описывает формат открытого ключа следующим образом:

Открытые ключи состоят из следующих полей, разделенных пробелами: параметры, тип ключа, ключ в кодировке base64, комментарий. . . . Поле комментария ни для чего не используется (но может быть удобным для пользователя, чтобы определить ключ).

В ssh-keygen(1) страница руководства говорит:

Комментарий о ключе может быть полезен для определения ключа. Комментарий инициализируется как «user @ host» при создании ключа, но его можно изменить с помощью опции -c.

Это кратко объясняется на странице руководства для sshd(8) в разделе про авторизованные ключи:

Открытый ключ протокола 2 состоит из: параметры, keytype, ключ в кодировке base64, comment.

В openssh в контексте авторизованных ключей есть только значение комментария. Но есть реализация SSH, которая придает значение этой части, так как, например, реализация SSH в модемах LANCOM использует этот комментарий как имя пользователя, для которого действует ключ.

Как отмечали другие, это комментарий, позволяющий ты чтобы определить, какой ключ какой.

Если посмотреть на один ключ, например, id_rsa.pub это не имеет большого значения, но если посмотреть на потенциально длинный список ключей, например, то, что у вас есть в authorized_keys файла, очень полезно иметь возможность легко определить, какой ключ какой.

Также, ssh-keygenпо умолчанию user@hostname, который для типичных случаев использования является четким идентификатором того, какой это ключ (user@domain не может быть).

Очень, очень просто: мы с вами люди, использующие машину. Итак, глядя на этот пример, который вы опубликовали:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Машина может прочитать это:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX

Этот комментарий может прочитать человек:

root@mydomain

Люди склонны забывать, что даже если что-то смотрю сложные для компьютерных систем, они могут быть тонны сложнее, если код был разработан только для машинного потребления. Я имею в виду, посмотрите на скрытый вредоносный код. После того, как вы его расшифруете и отформатируете, он станет читаемым человеком. Но кто-то должен был сделать все возможное, чтобы людям было трудно читать.

По умолчанию все типы файлов кодирования и конфигурации в компьютерной системе являются структурой для человеческого потребления, потому что ... Мы люди, использующие машины, и машинам не нужны такие вещи, как:

  • Комментарии.
  • Отступы.
  • Переменные и функции написаны на понятном человеку языке.

Так что комментарий предназначен для вас и меня и никого другого. Скорее всего, это сработало бы без комментариев. Но однажды в 3 часа ночи что-то не работает, и вы ищете правильный открытый ключ, вы будете желать / мечтать / молиться, чтобы комментарий был там.