Как преобразовать пары ключей SSH, сгенерированные с помощью PuTTYgen (Windows), в пары ключей, используемые ssh-agent и Keychain (Linux) - PullRequest
431 голосов
/ 08 февраля 2010

Я сгенерировал пары ключей с помощью PuTTYgen и вошел в систему с использованием Pageant, так что мне нужно вводить свою парольную фразу только один раз при загрузке моей системы.

Как мне добиться этого в Linux? Я слышал о keychain, но слышу, что он использует другой формат пары ключей - я не хочу менять свои ключи Windows, и было бы неплохо, если бы я мог беспрепятственно подключаться одинаково в Windows и Linux.

Ответы [ 8 ]

667 голосов
/ 08 февраля 2010

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

  1. Открытый PuttyGen
  2. Нажмите Загрузить
  3. Загрузить свой закрытый ключ
  4. Перейдите на Conversions->Export OpenSSH и экспортируйте свой закрытый ключ
  5. Скопируйте свой закрытый ключ в ~/.ssh/id_dsa (или id_rsa).
  6. Создание версии открытого ключа RFC 4716 с использованием ssh-keygen

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. Преобразование версии открытого ключа RFC 4716 в формат OpenSSH:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    

См. это и это для получения дополнительной информации.

147 голосов
/ 04 апреля 2012

Если все, что у вас есть, это открытый ключ пользователя в формате PuTTY, вы можете преобразовать его в стандартный формат openssh, например так:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Ссылки

Копия статьи

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

Самым распространенным способом создания ключа в Windows является использование Putty / Puttygen. Puttygen предоставляет удобную утилиту для преобразования закрытого ключа Linux в Замазка формата. Однако не учтено, что при сохранении открытый ключ с использованием puttygen не будет работать на сервере Linux. Windows помещает некоторые данные в разные области и добавляет разрывы строк.

Решение: когда вы открываете экран открытых ключей при создании вашего пара ключей в puttygen, скопируйте открытый ключ и вставьте его в текст файл с расширением .pub. Вы сэкономите часы сисадмина разочарование, читая сообщения, как это.

ОДНАКО, сисадмины, вы неизменно получаете файл Wonky Key, который выдает нет сообщения об ошибке в журнале аутентификации, кроме, ключ не найден, пытается пароль; хотя все остальные ключи работают нормально, и Вы отправили этот ключ пользователю 15 раз.

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Следует преобразовать существующий открытый ключ puttygen в формат OpenSSH.

135 голосов
/ 30 марта 2015

Более новые версии PuTTYgen (у меня 0,64) могут отображать открытый ключ OpenSSH для вставки в систему linux в файле .ssh/authorized_keys, как показано на следующем рисунке:

enter image description here

49 голосов
/ 14 мая 2013

В качестве альтернативы, если вы хотите получить закрытый и открытый ключи из файла с форматированными ключами PuTTY, вы можете использовать puttygen в * nix системах. Для большинства систем на основе apt puttygen является частью пакета putty-tools.

Вывод закрытого ключа из отформатированного файла ключей PuTTY:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

Для открытого ключа:

$ puttygen keyfile.pem -L

22 голосов
/ 02 декабря 2016
sudo apt-get install putty

Это автоматически установит инструмент puttygen.

Теперь, чтобы преобразовать файл PPK, который будет использоваться с командой SSH, выполните в терминале следующее:

puttygen mykey.ppk -O private-openssh -o my-openssh-key

Затем вы можете подключиться через SSH с помощью:

ssh -v user@example.com -i my-openssh-key

http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603

14 голосов
/ 02 июля 2013

У меня недавно была эта проблема, когда я переходил с Putty для Linux на Remmina для Linux. Так что у меня есть много файлов PPK для Putty в моем каталоге .putty, так как я использую его уже 8 лет. Для этого я использовал простую команду for для оболочки bash, чтобы сделать все файлы:

cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

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

8 голосов
/ 08 февраля 2010

Вероятно, проще создать ваши ключи в Linux и использовать PuTTYgen для преобразования ключей в формат PuTTY.

FaTTY Faq: A.2.2

6 голосов
/ 12 января 2013

Я думаю, что TCSgrad пытался спросить (несколько лет назад), как заставить Linux вести себя так, как его Windows-машина. Таким образом, существует агент (pageant), который содержит расшифрованную копию закрытого ключа, поэтому парольную фразу нужно вводить только один раз. Затем клиент ssh, putty, может войти в систему на компьютерах, где его открытый ключ указан как «авторизованный», без запроса пароля.

Аналогом этого является то, что Linux, , действующий как ssh-клиент , имеет агента, хранящего дешифрованный закрытый ключ, так что когда TCSgrad набирает "ssh host", команда ssh получит свой закрытый ключ и пойдет без запроса пароля. хост, конечно, должен был бы держать открытый ключ в ~ / .ssh / authorized_keys.

Аналог Linux для этого сценария выполняется с использованием ssh-agent (аналог конкурса) и ssh-add (аналог добавления закрытого ключа к конкурсу).

Метод, который работал для меня, заключался в использовании: $ ssh-agent $ SHELL Этот $ SHELL был волшебным трюком, который мне понадобился, чтобы заставить агента работать и продолжать работать. Я нашел это где-то в сети, и через несколько часов я ударился головой о стену.

Теперь у нас работает аналог Pageant, агент без загруженных ключей.

Typing $ ssh-add сам по себе добавит (по умолчанию) закрытые ключи, перечисленные в файлах идентификации по умолчанию в ~ / .ssh.

Веб-статью с более подробной информацией можно найти здесь

...