У меня есть публичный ключ в формате:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==
---- END SSH2 PUBLIC KEY ----
Обычно я вижу ключи в таком формате:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]
Могу ли я просто скопировать первый ключ в файл authorized_keys или мне нужно как-то изменить его, чтобы он выглядел как второй? Я думаю, что первый был сгенерирован PUTTYgen, а второй - ssh-keygen.
использовать ssh-keygen -i
для преобразования формата, совместимого с SSH2, в формат, совместимый с OpenSSH.
из man ssh-keygen
:
-i Этот параметр будет читать незашифрованный файл закрытого (или открытого) ключа в формате, совместимом с SSH2, и печатать закрытый (или открытый) ключ, совместимый с OpenSSH, в стандартный вывод. ssh-keygen также читает формат файла открытого ключа SSH RFC 4716. Эта опция позволяет импортировать ключи из нескольких коммерческих реализаций SSH.
Это полный и правильный ответ:
ssh-keygen -i -m PKCS8 -f public-key.pem
Вам нужно преобразовать открытый ключ в соглашение openssh:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]== somename-20060227
Также убедитесь, что ключ занимает ровно одну строку и при копировании не было разрывов строк.
Просто перепишите свой ключ в формате, подходящем для authorized_keys
:
keytype keybody имя ключа
Имейте в виду, что завершающие "==" являются необходимыми заполнителями, чтобы длина ключа оставалась равной желаемой длине.