Открытые ключи SSH поддерживают комментарии (которые просто состоят из текста, добавленного в конец ключа), что позволяет легко идентифицировать иначе неидентифицируемый файл id_rsa.pub. Вы можете использовать комментарий для хранения такой информации, как кому принадлежит ключ, когда он был создан и для какой машины.
В закрытых ключах эта функция отсутствует. ssh-keygen -C comment
создаст пару ключей с комментарием, добавленным к открытому ключу, но закрытый ключ останется без комментариев. ssh-keygen
имеет -c
аргумент, что «запрашивает изменение комментария в файлах закрытого и открытого ключей», но
root@kitsune:~# ssh-keygen -c -f id_rsa
Comments are only supported for RSA1 keys.
Похоже, что в формате закрытого ключа SSH2 нет поля для комментариев. В основном это нормально, пока пара ключей хранится вместе и в нужном месте, но файлы можно копировать и перемещать (что может произойти, когда учетные записи / машины используют общий ключ) или случайно перезаписывать, и все они имеют то же имя (id_rsa), поэтому можно не понять, какой ключ какой. В отсутствие комментариев, как лучше всего организовать хранение закрытых ключей?
Хранение закрытого ключа с открытым ключом дает вам возможность увидеть комментарий, хранящийся в общедоступной части, с помощью приведенной ниже команды, но я вижу, что это не то, что вам нужно. Нет возможности сохранить комментарий в самом ключе (как вы уже упоминали).
$ ssh-keygen -lf ~/.ssh/id_rsa
2048 SHA256:abcdef[...] [comment] (RSA)
файлы можно копировать и перемещать
Это действительно плохая идея. Вы не хотите, чтобы ваши личные данные перемещались. В идеальном случае у вас должна быть одна пара ключей на каждое устройство, с которого вы подключаетесь. Если вам нужно больше ключей на клиенте, я бы выбрал другое название, например id_rsa-private-github
(с соответствующим наименованием публичной части). При правильной настройке в ~/.ssh/config
и / или ssh-agent
, в этой настройке нет недостатка.