Как сгенерировать .pem ключ на Linux для удаленного подключения?
Я знаю только один способ удаленного подключения, сгенерить пару публичного+приватного ключа на хосте и отправить публичный ключ командой ssh-copy-id на удаленный сервер, при этом первый раз запросит пароль.
Но, например, при создании инстанса в AWS, сразу выдается .pem ключ, что очень удобно при дальнейшем подключении как через MobaXterm, так и через терминал командой ssh -i "key.pem" ubuntu@hostname
Какие действия необходимо совершить для генерирования .pem ключа и последующего его использования? Создать на удаленной машине публичный+приватный ключ и как-то сконвертировать приватный в .pem?
pem это не совсем формат, контейнер, внутри которого может быть сертификат, или цепочка из сертификата, приватного ключа и рутового сертификата.
Следовательно посмотри что у тебя в pem генерируется.
А так - ssh-keygen умеет генерить в PEM формате: ssh-keygen -t rsa -m PEM
Или конвертнуть существующий: ssh-keygen -f id_rsa -e -m pem
А так, современая версия ssh-keygen и так генерит ключ в валидном pem формате.
Saboteur спасибо за пояснение, что pem это не совсем формат и современная версия ssh-keygen и так генерит ключ в валидном pem формате.
Я ещё раз полез читать про ключи и, как оказалось, проблема была в том, что я передал на хост private key удаленного сервера и пытался по этому ключу подключиться, но при этом public key удаленного сервера, не был записан в файле authorized_keys удаленного сервера. Поэтому сервер скипал private key, так как public key не было в файле authorized_keys.
Вопрос, если я хочу добавить public key хоста на удаленный сервер, я использую команду ssh-copy-id user@hostname, но если на удаленном сервере отключена аутентификация по паролю, то такой вариант не сработает. Вопрос, как добавить public key на удаленный сервер не зная пароля? Только прописать public key в authorized_keys вручную, где снова таки надо знать пароль для подключения?
Именно так.
Либо админ удаленного сервера должен прописать ваш ключ, либо вы получаете временный пароль на удаленном сервере чтобы могли это сделать.
Ну а иначе никак. В противном случае ЛЮБОЙ бы мог прописать свой ssh ключ на вашем сервере )
AVKor можешь уточнить, какая именно команда должна помочь? Я перепробовал все и встречался с разными ошибки, конвертировал, но к успешному подключению так и не пришел.
Приватный id_rsa содержит начальные строки --- BEGIN OPENSSH PRIVATE KEY ---, а .pem файл c ec2 --- BEGIN RSA PRIVATE KEY ---.
В итоге я вытащил приватный ключ и с помощью этой инструкции https://support.huawei.com/enterprise/en/doc/EDOC1... сделал из него .pem RSA PRIVATE KEY, но при подключении ключ все равно игнорится(никакой ошибки нет) и запрашивает ввод пароля
можешь уточнить, какая именно команда должна помочь?
Именно та, что по ссылке:
ssh-keygen -f id_rsa -e -m pem
This will convert your public key to an OpenSSL compatible format. Your private key is already in PEM format and can be used as is (as Michael Hampton stated).
У меня генерирует.
ПС. Я не читаю скриншоты. И на данном ресурсе запрещено размещать текстовую информацию в виде картинок.