Linux ppk to pub

Конвертирование ключей OpenSSH для PuTTY и наоборот

Популярным SSH-клиентом для Windows является PuTTY, на Linux же администраторы обычно используют утилиту ssh из состава пакета OpenSSH. Каждый из этих инструментов является кроссплатформенным, но за пределами «родных» платформ они используются редко.

Если есть необходимость работать как из под Windows, так и из под Linux то возникает проблема при попытке использования одних и тех же ключей с разными утилитами (они используют разные форматы хранения ключей). Далее будет показано как можно конвертировать ключи из формата OpenSSH в PPK (PuTTY) и обратно.

На Windows-машине должна быть установлена последняя версия PuTTY (обязательно вместе с puttygen.exe). На Linux-машине в зависимости от направления кодирования понадобятся ssh-keygen из состава OpenSSH и puttygen из состава PuTTY. В Debian/Ubuntu их можно установить командой:

Перекодируем на Linux-машине OpenSSH-ключ в формат PPK

Допустим что у нас есть ключ, сгенерированный командой:

Чтобы перекодировать его в формат PPK достаточно выполнить команду:

Перекодируем на Linux-машине PPK-ключ для использования с OpenSSH

Тут нам так же поможет утилита puttygen. Извлекаем приватный ключ:

Извлекаем публичный ключ:

Так же публичный ключ можно извлечь командой:

Перекодируем ключи Windows-машине

Здесь нам снова поможет утилита puttygen. В версии для Windows она имеет удобный графический интерфейс. Независимо от направления конвертирования необходимо в меню «Conversions» выбрать пункт «Import key» и указать исходный файл.

Для получения ключа в формате PPK достаточно нажать кнопку «Save private key» и указать имя файла для сохранения. Для получения приватного ключа в формате OpenSSH нужно выбрать в меню «Conversions» пункт «Export OpenSSH key» и указать имя файла.

К сожалению красивого способа получить публичный ключ в формате OpenSSH на Windows нет. Но если очень хочется то проблему решится конечно же можно:)

Для начала нужно открыть PPK-файл в любом текстовом редакторе (ВАЖНО! ключ не должен быть зашифрован!) и увидеть примерно вот такую картину:

Здесь в строке «PuTTY-User-Key-File-2» указывается тип ключа, а цифра в строке «Public-Lines» указывает сколько строк ниже неё содержат данные публичного ключа. Достаточно собрать все эти данные в одну строчку и получится публичный ключ. В нашем примере результат будет таким:

Эту строку можно сразу добавлять в authorized_keys на ваших серверах. На этом всё. Приятной работы!

Источник

🗝 Не выкидывай свои ppk-ключи при переходе на Mac и Linux

Простой способ сконвертировать свои приватные ключи, созданные в Putty под Windows, чтобы пользоваться ими под Mac и Linux без перенастройки удаленных серверов

Спустя полгода после переезда под MacOS мне понадобилось залогиниться на один Ubuntu-сервер, доступ к которому у меня был по ключу, сгенерированному в puttygen под Windows.

Достучатся до админа сервера не получилось, а переконфигурировать сервер надо было быстро. После пары минут в поисковике я нашел способ конвертировать ключи ppk, созданные putty под Windows, в ключи формата OpenSSH, которые понимают ssh-клиенты под Mac и Linux.

Читайте также:  Переустановка службы смарт карт windows 10

Устанавливаем putty на Mac (или Linux)

Под MacOS самый удобный способ установить putty (и все сопутствующие ему приложения вроде puttygen) через Homebrew:

Теперь нам доступна утилита puttygen .

Под Linux все это тоже работает, там просто пишете:
sudo apt install … ну, вы знаете.

Конвертируем ключи

Мой приватный ключ называется stena.ppk , поэтому я пишу в консоли:

Тем самым говорю утилите:

  • возьми мой приватный ключ в формате ppk ,
  • конвертируй его в приватный ключ в формате OpenSSH
  • и положи в папку .ssh в домашнем каталоге текущего пользователя под именем stena .

Не уходя далеко, из того же самого приватного ключа делаем публичный (на всякий случай):

Аналогично, просим утилиту:

  • возьми мой приватный ключ в формате ppk ,
  • конвертируй его в публичный ключ в формате OpenSSH
  • и положи в папку .shh под именем stena.pub .

Обновляем права доступа к файлам ключей

На только что созданные ключи терминальный ssh начал ругаться, что их права доступа «слишком открыты (too open)». Пришлось изменить права к файлам вот такими командами:

Что означает — я перехожу в директорию с ключами и устанавливаю возможность читать и писать в эти файлы только владельцу, то есть мне.

Подключаемся по ssh к удаленному серверу с новым ключом

Для подключения к серверу пишем в терминале:

Соответственно, показываю ssh-клиенту, где лежит новый приватный ключ, ну, и имя пользователя с адресом сервера.

Публичный ключ, кстати, на удаленном сервере обновлять не нужно. Их форматы отличаются не настолько, чтобы из-за этого возникла несовместимость.

Замечательно, что есть версия putty для Mac и Linux. С помощью этой утилиты можно сэкономить кучу времени, особенно, если ваши публичные ключи разложены по большому количеству серверов. Меньше головной боли для админов. Здоровья им.

Источник

Welcome to the VanDyke Software Forums

Join the discussion today!

VanDyke Software Forums > Scripting
could .ppk transfer to .pub

It is possible to convert the keys generate by Putty to an OpenSSH format. SecureCRT can use the private keys that are in the OpenSSH format.

To convert your putty-generated .ppk file into an OpenSSH private key that can be used with VanDyke Software products, follow these steps:

1. Run «puttygen.exe». The «PuTTY Key Generator» dialog will appear.

2. Use the «Load» button to load the .ppk file that contains your private key. If your private key file is protected with a passphrase, you will be prompted to supply the passphrase in order to complete the loading of the private key.

3. Once the private key has been loaded properly, choose «Export OpenSSH key» from the main «Conversions» pull-down menu that is part of the «PuTTY Key Generator» window.

4. When the «Save private key as:» window appears, specify a filename for the private key file such as «Identity» and choose «Save».

NOTE: The private key file name should not have any extension associated with it. For example, if SecureCRT is configured to use a public key named «Identity.pub», it expects to find the private key in the same folder as the public key file, with the name of «Identity».

Similarly, if SecureCRT is confgured to use a private key named «Identity», it expects to find a the public key in a file named «Identity.pub» located in the same folder as the private key file.

Now you will need to export the public key to a file format that follows the IETF SecSH internet-draft.

Источник

SSH авторизация по ключу через PuTTY

На сегодняшний день набирает обороты практика аутентификации к SSH-серверу по ключу, в этом есть несколько преимуществ:

  • Удобство в использовании. У вас может быть несколько серверов и один ключ, не нужно всякий раз вводить пароль от нужного сервера, что сэкономит время.
  • Это безопасно. Вы сможете отключить аутентификацию по паролю и ssh будет защищён от брутфорса.

В это статье мы настроим SSH авторизации на сервере CentOS 7 по ключу, и настроем подключение через ключ утилиту PuTTY.

Генерация ключа

Для генерации ключа будем использовать утилиту PuTTYgen. После запуска выбираем тип ключа для генерации — SSH-2 RSA, и длину ключа — 2048 бит. После чего нажимаем Generate и крутим мышкой по окну пока не закончится генерация ключа.

  • Key comment — комментарий к ключу.
  • Key passphrase — парольная фраза к приватному ключу. (Не обязательно к заполнению)
  • Confirm passphrase — подтверждение парольной фразы.

Если вы хотите обезопасить себя по максимальному вы можете задать пароль для защиты приватного ключа в полях Key Passphrase и Confirm Passphrase. Но при каждом входе у вас будет запрашивать пароль который вы ввели. Это обезопасит вас если ваш приватный ключ будет похищен.

Далее сохраняем public key и private key. Приватный ключ мы будем использовать для подключения к серверу, а вот публичный ключ надо будет передать на удаленный сервер которому мы будем подключаться.

Обратите внимания на то как был сгенерирован ваш публичный ключ.

Лично у меня он был сгенерирован не совсем верно, вот пример public_key в дальнейшем при подключении через PuTTY с таким ключом могут возникнуть ошибка Server refused our key.

Для того чтобы избежать подобной ошибки правим файл с публичным ключом, пример правильного ключа.

Установка публичного ключа на сервере

Далее необходимо скопировать наш публичный ключ на сервер. Мы воспользуемся для передачи на сервер ключа утилитой PSFTP, но вам ничего не мешает его передать через любой FTP клиент.

Ключ с копировался, теперь нужно добавить его в

/.ssh/authorized_keys. Далее логинемся еще раз по паролю, через PuTTY и выполняем:

Далее нужно проверить настройки нашего SSH сервера, сами настройки лежат в файле /etc/ssh/sshd_config:

Теперь нам надо будет перезапустить SSH сервер:

Теперь мы можем подключиться к серверу по ключу или паролю.

Но мы можем вообще запретить подключатся к SSH серверу по паролю указав в файле /etc/ssh/sshd_config.

После чего не забываем заново перезапустить SSH сервер.

Настройка и подключения PuTTY

Теперь все что нам осталась это создать новый сеанс и настроить его подключения к SSH серверу по ключу.

Создаем новый сеанс пиши на IP Адрес к серверу.

Далее, мы выбираем меню категорию SSH и там выберем под категорию Auth

В поле Private key file for authentication загружаем наш приватный ключ.

Далее переходим обратно в раздел Session и сохраняем нашу сессию для того чтобы следующий раз не заполнять все эти поля.

Остаётся только проверить правильность аутентификации к SSH серверу по ключу. Запустите PuTTY и подключитесь к своему серверу. Если вы при создании, ключа заполнили поле Key Passphrase и Confirm Passphrase то вас запросит вести этот пароль. Если же всё настроено неправильно, то будет выдано сообщение об ошибке и предложено ввести пароль.

Источник

Авторизация по SSH-ключу

Использование SSH-ключа для подключения к серверу позволяет сделать работу более безопасной (снизится вероятность взлома учетной записи) и более удобной (не будет необходимости при каждом соединении вводить пароль).

Настройка авторизации по ключу состоит из создания ключа на локальном компьютере и копирования его на сервер.

Скопировать ключ на сервер также можно с помощью панели управления — при создании нового VDS или переустановке системы. Кроме того, вы можете хранить ключи в панели управления, чтобы использовать их при создании серверов.

Linux, MacOS, Windows 10

Создание SSH-ключей

Эта инструкция подойдет для ОС Linux, MacOS, а также для версий Windows 10 начиная с 1809 — в них доступен встроенный SSH-клиент. Если у вас более ранняя версия Windows, воспользуйтесь инструкцией из пункта Старые версии Windows (без OpenSSH).

Запустите терминал или Windows PowerShell на вашем компьютере и выполните команду:

Вы увидите примерно следующее сообщение:

Нажмите Enter — ключ будет сохранен в указанную директорию по умолчанию.

Далее вам будет предложено задать пароль (кодовую фразу) для ключа. Вы можете задать ее или оставить пустой, просто нажав Enter. Обратите внимание, что если вы зададите кодовую фразу, ее потребуется вводить при каждой авторизации по ключу.

Процедура создания ключей завершена, ключи сохранены в директории

/.ssh/ в файлах id_rsa и id_rsa.pub. Теперь их необходимо скопировать на сервер.

Копирование ключей на сервер

Выполните в терминале следующую команду, указав вместо user имя пользователя, созданного на сервере, а вместо server — IP-адрес вашего сервера:

В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл

/.ssh/authorized_keys на сервере, и в дальнейшем вы сможете устанавливать соединение с сервером, используя команду:

Старые версии Windows (без OpenSSH)

Если вы используете версию Windows без OpenSSH, вам потребуется специальная программа — PuTTYgen. Вы можете скачать дистрибутив puttygen.exe с официального сайта PuTTY.

Создание SSH-ключей

  1. Запустите программу, в открывшемся окне выберите «Type of key — SSH-2 RSA и нажмите «Generate».
  2. Пока создается ключ, водите мышью в хаотичном порядке в пространстве под строкой загрузки для генерации случайных значений.
  3. После того, как ключ будет создан, в окне программы вы сможете задать «Key passphrase» (кодовую фразу) для ключа. Это необязательно, вы можете оставить строку пустой. Если вы решите задать кодовую фразу, обратите внимание, что ее потребуется вводить при каждой авторизации по ключу.
  4. Далее сохраните созданные ключи, нажав на кнопки «Save public key» и «Save private key«, например, под именами id_rsa.pub и mykey.ppk. Также скопируйте и сохраните в любом текстовом файле содержимое окна «Public key for pasting…» — оно потребуется при копировании созданного ключа на сервер.

На этом процедура создания ключей завершена.

Копирование ключей на сервер

В процессе копирования ключей вам потребуется утилита pageant. Вы можете скачать дистрибутив pageant.exe с официального сайта PuTTY.

Подключитесь к серверу по SSH и выполните команду для создания на сервере директории и файла для хранения ключей:

Откройте созданный файл с помощью текстового редактора:

Для проверки работы авторизации по ключу снова запустите утилиту PuTTY, подключитесь к вашему серверу и введите свой логин. Если все настроено корректно, вы увидите подобный вывод в окне консоли:

Отключение доступа по паролю

Для того, чтобы доступ к серверу мог осуществляться только по ключу, необходимо запретить авторизацию по паролю. Для этого требуется внести правки в файл /etc/ssh/sshd_config.

Откройте файл командой:

Сохраните изменения, после чего перезапустите службу SSH:

Источник

Читайте также:  Windows файл журнала поврежден
Оцените статью