Как конвертировать пары ключей SSH, созданные с помощью PuttyGen (Windows) в пары ключей, используемые ssh-agent и KeyChain (Linux)

Я создал пары ключей, используя PuttyGen и в Pageant, Так что я должен ввести свой пароль только один раз, когда моя система загружается.

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

8 ответов


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
    

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


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

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

ссылки

текст статьи

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

самый распространенный способ сделать ключ в Windows - это использовать Putty / Puttygen. Puttygen предоставляет аккуратную утилиту для преобразования закрытого ключа linux в Формат шпаклевки. Однако, что не учтены, что при сохранении открытый ключ с помощью puttygen он не будет работать на сервере linux. Окна помещает некоторые данные в разные области и добавляет разрывы строк.

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

однако, сисадмины, вы неизменно получаете wonky ключевой файл, который бросает нет сообщения об ошибке в журнале auth, за исключением, не найден ключ, попытка пароль; даже если все остальные ключи работают нормально, и вы отправили этот ключ обратно пользователю 15 раз.

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

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


новые версии генератор puttygen (мой 0.64) могут показать открытый ключ OpenSSH, который будет вставлен в систему linux в , как показано на следующем рисунке:

enter image description here


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

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

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

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

$ puttygen keyfile.pem -L


sudo apt-get install putty

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

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

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


недавно у меня была эта проблема, когда я переходил от Putty для Linux к Remmina для Linux. Поэтому у меня есть много файлов PPK для шпатлевки в моем .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;

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


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

Putty Faq: A. 2.2


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

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

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

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

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

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

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