Я знаю, что могу просто открыть pubkey и изменить комментарий после ==
s, но определяется ли поле комментария при создании и в закрытом ключе? Если так, как я могу изменить это поле, не создавая совершенно новый ключ с нуля?
3 ответа
Я столкнулся с этим вопросом в своем собственном поиске для изменения комментария в ключе ssh в моей новой установке Ubuntu.
Затем я выполнил поиск по страницам man (man ssh-key-gen
), и ответ был тут же:
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
-c Requests changing the comment in the private and public key files.
This operation is only supported for RSA1 keys and keys stored in the
newer OpenSSH format. The program will prompt for the file containing
the private keys, for the passphrase if the key has one, and for the
new comment.
Так что для меня все, что мне нужно было сделать, это
ssh-keygen -c -C "my new comment" -f ~/.ssh/my_ssh_key
Примечание: ssh-keygen
может использоваться для изменения пароля, используемого для защиты файла ключа, включая удаление пароля.
Я только что провел небольшой тест, модифицирующий строку «Комментарий:» моего личного ключа RSA, и, похоже, он был исправлен при создании ключа.
Это ключ RSA, сгенерированный с помощью Putty, и после изменения комментария в ключе passwd не работает, я должен отменить редактирование того же самого исходного комментария, чтобы он снова работал.
Я только что создал ключ RSA с помощью ssh-keygen -t rsa -b 4096
, без прохода, без комментариев (поэтому стандартный комментарий). Я загрузил его на GitHub, а затем изменил его комментарий. Повторная загрузка не требовалась, ключ работал до и после изменения и перестал работать после удаления из GitHub (хотя, если он был кеширован и работал только из-за этого, я не проверял).
Журнал сеанса:
lafk-T470% ssh-keygen -c -f ~/.ssh/id_rsa -C "a new comment"
Comments are only supported for keys stored in the new format (-o).
lafk-T470% ssh-keygen -c -f ~/.ssh/id_rsa -C "a new comment" -o
Key now has no comment
The comment in your key file has been changed.
lafk-T470% vim ~/.ssh/id_rsa.pub
lafk-T470% tail -1 ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCocnoRyM7Oy5XA0dLIaiHHQiPnimJvXifliTZI7OX5lqkACsZmUL/D7kUV2uPDyyPZ6lm0UGUHXhOw2QjStQ6ubPRFOKWQyNDkemaQAJtHPYTkT4pGHbsddyko3SRG0Vp4A9CSLRLJXVGuGn1UpfjB/AD0aUcLWVJdgWDuovR09t1YsHbakDpDh4a/2JS52Cvg6x9kEGakZK7ffUQZ64yZvqisEH//e7SbYtpHIp4ZdBMSIIsFIBWvqMXZowahvSMbV7MeLFuwt90dMOFiGJIe0n8oPt/ilQ0FTRcEP7UODyLKbESHkZqoGAHKeQ4ZMCCv7T00KtB98HvWylqvzHg2rIpLMHkVcRGjwlaZUlZB5Zxk6dAJ5HHg1irF+05UeIbQ9YQF/0x63KWQvreEcmLrkbnZ++XeF2ipE7M7CfkYhpJ9XbKZBG4pOQIqLio2rBV9c3+y+sPq4BABXdJKAnIX+h3kFrvOVA7Gy9/YxgQfCJ0ZSmaAV08uqMm91GYGRU9lt2Uf/ALqhW0rH93UWUj232w35rY8GtXucWAjtw3zi6QtZsIAStRzT3Br+Qrqv4MrKvEk+4rzswytaYjCGLrsMDYL7hI/YEJh9vv/v3wGvJGAqLDk1FeBL8tdwEMr1eM9JKl5gVkmBa4MdJkNMe4rHwUIidrW8LW2EEBY3DmDTQ== a new comment
lafk-T470% git clone git@github.com:GH_User/a-repository.git
Cloning into 'a-repository'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
Таким образом, это работает для ключей, хранящихся в новом формате. Шаги подробно описаны здесь, в моем ответе ServerFault.
Все операции выполнялись на стандартном OpenSSH ssh-keygen в Xubuntu 18.04.
Закрытый ключ будет меняться таким образом. Не из-за комментариев, а из-за изменений в формате. Смотрите сравнение здесь для ключа, созданного только для этого сравнения.
Заметьте, что для pub-ключа я фактически сломал его, поэтому Meld лучше показывает, что изменилось: пробелы были изменены с переносами строк (это нарушает формат).