- Converting .ppk Keys to OpenSSH Keys on Linux: A Step-by-Step Guide
- How to convert .ppk key to OpenSSH key under Linux?
- How to convert .ppk key to OpenSSH key under Linux? (4
- How to convert open-ssl created private key to openssh private key?
- How to convert SSH public key from PEM to DER format?
- Как конвертировать ключи SSH из формата PuTTY в формат OpenSSH
- Как извлечь ключи SSH из .ppk
- Как установить PuTTY в Linux
- Как конвертировать ключи PuTTY (.ppk) в формат OpenSSH
- Извлечение приватного ключа с помощью PuTTYgen в графическом пользовательском интерфейсе
- 🗝 Не выкидывай свои ppk-ключи при переходе на Mac и Linux
- Устанавливаем putty на Mac (или Linux)
- Конвертируем ключи
- Обновляем права доступа к файлам ключей
- Подключаемся по ssh к удаленному серверу с новым ключом
Converting .ppk Keys to OpenSSH Keys on Linux: A Step-by-Step Guide
To convert the PPK keys to SSH keypairs, generate a private key and a public key. Then, move these keys to the desired location and ensure that the permissions are set to private for the private key. If you have already attempted a ‘git clone’ operation, you may need to perform additional steps. Alternatively, you can import the flag from a source other than the openssh format and use it to read from an input file. This solution was found in a blog post on burnz.wordpress.com. Another solution is to obtain the private key by opening the .ppk file in puttygen and exporting it as openssh. To get the public key, open the private key with puttygen and locate the public key for pasting into the OpenSSH authorized_keys file. Thanks to a comment from Spas Spasov (@pa4080), the OpenSSH public key format was successfully implemented.
How to convert .ppk key to OpenSSH key under Linux?
- The following are some popular operating systems categorized based on their package management systems: — Ubuntu (Debian-like) — RPM based — Gentoo — Archlinux — and others.
- To set up on OS X, start by installing Homebrew. After that, execute the following command:
brew install putty
Store your keys in a directory such as your home folder, then transform the PPK keys into SSH keypairs through a cache search.
To create the key that is not intended for public use:
cd ~ puttygen id_dsa.ppk -O private-openssh -o id_dsa
puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub
Transfer the aforementioned keys to ~/.ssh and ensure that the private key’s permissions are set to private.
mkdir -p ~/.ssh mv -i ~/id_dsa* ~/.ssh chmod 600 ~/.ssh/id_dsa chmod 666 ~/.ssh/id_dsa.pub
In case you have previously attempted the ‘git clone’ task, it may be necessary to perform an additional action.
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
- The flag needs to be in a format other than openssh for proper import.
- The -f flag indicates that the program should retrieve data from an input file.
An article on burnz.wordpress.com.
Acquire the key that is private:
open the .ppk file in puttygen:
Conversions → Export OpenSSH key
Obtain the key accessible to everyone.
Access the private key using puttygen, then locate the public key for pasting into the authorized_keys file for OpenSSH.
How to ssh connect through Python Paramiko with ppk, See «Convert PuTTY Private Key (ppk) to OpenSSH (pem)» import sys import chilkat key = chilkat.CkSshKey () # Load an unencrypted or encrypted …
How to convert .ppk key to OpenSSH key under Linux? (4
How to convert .ppk key to Ope nSSH key under Linux?Helpful? Please support me on Patreon: https://www.patreon.com/roelvandepaarWith thanks & praise to God,
I was able to get it working, all thanks to the feedback provided by Spas Spasov (@pa4080).
matthewh@xen:~/.ssh$ puttygen The program 'puttygen' is currently not installed. You can install it by typing: sudo apt install putty-tools matthewh@xen:~/.ssh$ sudo apt install putty-tools .
To convert the ppk, I had to resort to reading the man page for puttygen.
The instruction given for carrying out the transformation was:
puttygen keyfilename.ppk -O private-openssh -o keyfilename.pem
After obtaining the key, I could utilize it for ssh/sftp and sshfs purposes.
Linux — How to convert an existing private key into ppk, You cannot do this with OpenSSH’s ssh-keygen; it can neither import nor export PuTTY’s key format. (Your -e and -i options don’t work because they …
How to convert open-ssl created private key to openssh private key?
It seems to me that the RSA key formats bear a striking resemblance to each other.
bash-4.1$ openssl genrsa 4096 > whoble . bash-4.1$ ssh-keygen -t rsa -N '' -f bobble . bash-4.1$ head -c 123 whoble ; echo -----BEGIN RSA PRIVATE KEY----- MIIJJwIBAAKCAgEAw22KzezlaVt6/lAkuTeLNVyrPIK8rjMchGPmUBp6Gx1Bkcjk zjoWNNH1d0gxVd0Yw2RmpJVVnH bash-4.1$ head -c 123 bobble ; echo -----BEGIN RSA PRIVATE KEY----- MIIEoQIBAAKCAQEA1tUSesz83DwMiQj6aWDMRd/5DISMBnp9jXZVzWwmD61FqlO/ ZhbmdBFMvNUIZNcHVQjqL/Gso0 bash-4.1$
OpenSSH SSH-2 private key (old PEM format) on Azure, Convert this file into the right format to use with Putty: In Puttygen, in the ‘Conversions’ menu choose ‘Import’ and load id_rsa.ppk ‘Save private key’ to a …
How to convert SSH public key from PEM to DER format?
The format of OpenSSH public key is not the same as PEM format and requires conversion by running ssh-keygen .
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM >pubkey.pem
Utilize openssl rsa to transform it into DER format.
openssl rsa -RSAPublicKey_in -in pubkey.pem -inform PEM -outform DER -out ~/.ssh/id_rsa.pub.der -RSAPublicKey_out
It’s important to mention that in order to maintain it as RSA Public Key (PKCS#1), you must specify -RSAPublicKey_in (and not -pubin ) and -RSAPublicKey_out .
Ssh — Convert Amazon .pem key to Putty .ppk key Linux, Open PuTTYgen, select Type of key to generate as: SSH-2 RSA Click «Load» on the right side about 3/4 down Set the file type to *.* Browse to, and Open your .pem …
Как конвертировать ключи SSH из формата PuTTY в формат OpenSSH
PuTTY — это популярная программа для подключения к удалённым компьютерам по протоколам Telnet, SSH, Rlogin, Serial и Raw. Особенно широко эта программа распространена на Windows, так как раньше ей не было альтернатив на этой ОС.
В пакет PuTTY входит программа PuTTYgen, которая позволяет генерировать пару публичный и приватный ключ SSH. Для чего нужны эти ключи и как ими пользоваться смотрите в разделе «Вход в SSH без пароля (с использованием файлов ключей)».
Файлы, сгенерированные в PuTTYgen, имеют расширение .ppk и примерно следующую структуру:
Как извлечь ключи SSH из .ppk
Может понадобится извлечь приватный ключ, или публичный ключ или сразу оба ключа из файла .ppk. Это можно сделать в командной строке с помощью улиты PuTTYgen или в графическом интерфейсе. Данная инструкция покажет как это сделать. Описанные способы применимы для Windows и Linux.
Начать нужно с установки PuTTY, если вы ещё этого не сделали
Как установить PuTTY в Linux
В Debian, Linux Mint, Kali Linux, Ubuntu и их производные выполните команду:
В дистрибутивах на основе RPM:
В Arch Llinux, BlackArch и их производных:
Установите Homebrew, затем выполните:
Как конвертировать ключи PuTTY (.ppk) в формат OpenSSH
Поместите свои ключи в какой-нибудь каталог, например ваша домашняя папка. Теперь преобразуйте ключи PPK в пары ключей SSH.
Чтобы сгенерировать закрытый (приватный) ключ:
cd ~ puttygen id_dsa.ppk -O private-openssh -o id_rsa
и чтобы сгенерировать открытый (публичный ключ):
puttygen id_dsa.ppk -O public-openssh -o id_rsa.pub
Переместите эти ключи в ~/.ssh и убедитесь, что правильно установлены разрешения на приватный ключ:
mkdir -p ~/.ssh mv -i ~/id_dsa* ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 666 ~/.ssh/id_rsa.pub
Извлечение приватного ключа с помощью PuTTYgen в графическом пользовательском интерфейсе
Откройте PuTTYgen, нажмите кнопку «Load» и выберите файл .ppk с ключами.
Вы сразу увидите публичный ключ SSH, который вы можете скопировать и вставить в файл.
Теперь в меню перейдите в «Conversions» → «Export OpenSSH key» и сохраните приватный ключ.
Скопируйте ваш приватный ключ в файл ~/.ssh/id_dsa (или id_rsa).
Вы могли скопировать публичный ключ, как это показано на скриншоте выше — он размещён в области, отмеченной цифрой 2. Но вы также можете конвертировать его используя утилиту ssh-keygen.
Опция -y прочитает файл OpenSSH формата с приватным ключом и напечатает в стандартный вывод публичный ключ OpenSSH.
Также с помощью опции -f нужно указать путь до приватного ключа, из которого будет извлечён соответствующий ему публичный ключ:
ssh-keygen -y -f ПРИВАТНЫЙ-КЛЮЧ
Например, приватный ключ помещён в файл id_rsa, тогда команда извлечения из него публичного ключа следующая:
Вы можете столкнуться с ошибкой:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "id_rsa": bad permissions
Она означает, что приватный ключ доступен для чтения кому угодно и программа ssh-keygen отказывается работать с ним по этой причине. Чтобы исправить эту ошибку, просто установите на файл с приватным ключом права доступа 600:
🗝 Не выкидывай свои ppk-ключи при переходе на Mac и Linux
Спустя полгода после переезда под MacOS мне понадобилось залогиниться на один Ubuntu-сервер, доступ к которому у меня был по ключу, сгенерированному в puttygen под Windows.
Достучатся до админа сервера не получилось, а переконфигурировать сервер надо было быстро. После пары минут в поисковике я нашел способ конвертировать ключи ppk, созданные putty под Windows, в ключи формата OpenSSH, которые понимают ssh-клиенты под Mac и Linux.
Устанавливаем putty на Mac (или Linux)
Под MacOS самый удобный способ установить putty (и все сопутствующие ему приложения вроде puttygen) через Homebrew:
Теперь нам доступна утилита puttygen .
Под Linux все это тоже работает, там просто пишете:
sudo apt install … ну, вы знаете.
Конвертируем ключи
Мой приватный ключ называется stena.ppk , поэтому я пишу в консоли:
$ puttygen stena.ppk -O private-openssh -o ~/.ssh/stena
- возьми мой приватный ключ в формате ppk ,
- конвертируй его в приватный ключ в формате OpenSSH
- и положи в папку .ssh в домашнем каталоге текущего пользователя под именем stena .
Не уходя далеко, из того же самого приватного ключа делаем публичный (на всякий случай):
$ puttygen stena.ppk -O public-openssh -o ~/.ssh/stena.pub
Аналогично, просим утилиту:
- возьми мой приватный ключ в формате ppk ,
- конвертируй его в публичный ключ в формате OpenSSH
- и положи в папку .shh под именем stena.pub .
Обновляем права доступа к файлам ключей
На только что созданные ключи терминальный ssh начал ругаться, что их права доступа «слишком открыты (too open)». Пришлось изменить права к файлам вот такими командами:
$ cd ~/.ssh $ chmod 0600 stena stena.pub
Что означает — я перехожу в директорию с ключами и устанавливаю возможность читать и писать в эти файлы только владельцу, то есть мне.
Подключаемся по ssh к удаленному серверу с новым ключом
Для подключения к серверу пишем в терминале:
ssh -i ~/.ssh/stena pavlov@10.152.2.60
Соответственно, показываю ssh-клиенту, где лежит новый приватный ключ, ну, и имя пользователя с адресом сервера.
Публичный ключ, кстати, на удаленном сервере обновлять не нужно. Их форматы отличаются не настолько, чтобы из-за этого возникла несовместимость.
Замечательно, что есть версия putty для Mac и Linux. С помощью этой утилиты можно сэкономить кучу времени, особенно, если ваши публичные ключи разложены по большому количеству серверов. Меньше головной боли для админов. Здоровья им.