Как преобразовать пары ключей SSH, сгенерированные с помощью PuTTYgen (Windows), в пары ключей, используемые ssh-агентом и связкой ключей (Linux)
Вопрос
Я сгенерировал пары ключей с помощью PuTTYgen и входил в систему с помощью Pageant, так что мне приходится вводить пароль только один раз при загрузке моей системы.
Как мне добиться этого в Linux?Я слышал о keychain
но я слышал, что он использует другой формат пары ключей - я не хочу менять свои ключи Windows, и было бы неплохо, если бы я мог легко подключаться одинаковым образом как в Windows, так и в Linux.
Решение
puttygen
поддерживает экспорт вашего закрытого ключа в формат, совместимый с OpenSSH.Затем вы можете использовать инструменты OpenSSH для воссоздания открытого ключа.
- Открыть PuttyGen
- Нажмите «Загрузить».
- Загрузите свой закрытый ключ
- Идти к
Conversions->Export OpenSSH
и экспортируйте свой закрытый ключ - Скопируйте свой закрытый ключ в
~/.ssh/id_dsa
(илиid_rsa
). Создайте версию открытого ключа RFC 4716, используя
ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
Преобразуйте версию открытого ключа RFC 4716 в формат OpenSSH:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
Другие советы
Если все, что у вас есть, - это открытый ключ от пользователя в формате в стиле PuTTY, вы можете преобразовать его в стандартный формат openssh следующим образом:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Ссылки
- Источник:
http://www.treslervania.com/node/408 - Зеркало: https://web.archive.org/web/20120414040727/http://www.treslervania.com/node/408.
Копия статьи
Я все время забываю об этом, поэтому напишу это здесь.Не гики, просто продолжайте идти.
Наиболее распространенный способ создания ключа в Windows - это использование Putty / Puttygen.Puttygen не обеспечивает аккуратный утилита для преобразования закрытого ключа в Linux Формат зашпаклевать.Однако не учтено то, что при сохранении открытого ключа с помощью puttygen он не будет работать на сервере Linux.Windows помещает некоторые данные в разные области и добавляет разрывы строк.
Решение:Когда вы перейдете к экрану создания открытого ключа пары ключей в puttygen, скопируйте открытый ключ и вставьте его в текстовый файл с расширением .pub.Вы сэкономите системному администратору часы разочарования, читая подобные сообщения.
ОДНАКО, системные администраторы, вы неизменно получаете шаткий ключевой файл, который выдает в журнале авторизации нет сообщения об ошибке, за исключением "ключ не найден", пытаюсь ввести пароль;несмотря на то, что все остальные ключи работают нормально, и вы отправляли этот ключ обратно пользователю 15 раз.
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Следует преобразовать существующий открытый ключ puttygen в формат OpenSSH.
Новые версии PuTTYgen (у меня 0,64) могут показать открытый ключ OpenSSH, который нужно вставить в систему Linux в .ssh/authorized_keys
файл, как показано на следующем изображении:
В качестве альтернативы, если вы хотите получить закрытый и открытый ключи из файла ключей в формате PuTTY, вы можете использовать puttygen
в *nix-системах.Для большинства 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, выполните в терминале следующее:
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. .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.
Я думаю, что TCSgrad пытался спросить (несколько лет назад), как заставить Linux вести себя так же, как его компьютер с Windows.То есть существует агент (pageant), который хранит расшифрованную копию закрытого ключа, так что кодовую фразу нужно ввести только один раз.Затем ssh-клиент putty может входить в систему на компьютерах, где его открытый ключ указан как "авторизованный", без запроса пароля.
Аналогом этого является то, что Linux, действуя в качестве ssh-клиента, имеет агента, владеющего расшифрованным закрытым ключом, так что, когда TCSgrad вводит "ssh host", команда ssh получает его закрытый ключ и переходит без запроса пароля.хост, конечно, должен был бы хранить открытый ключ в ~/.ssh/authorized_keys.
Linux-аналог этого сценария выполняется с использованием ssh-agent (аналог pageant) и ssh-add (аналог добавления закрытого ключа в pageant).
Метод, который сработал для меня, заключался в использовании:$ ssh-агентская $ ОБОЛОЧКА Эта $ ОБОЛОЧКА была волшебным трюком, который мне был нужен, чтобы заставить агент работать и оставаться запущенным.Я нашел это где-то в сети, и это закончилось несколькими часами биения головой о стену.
Теперь у нас есть аналог запущенного конкурса, агент без загруженных ключей.
Ввод $ ssh-add сам по себе добавит (по умолчанию) закрытые ключи, перечисленные в файлах идентификации по умолчанию в ~/.ssh .
Веб-статью с гораздо более подробной информацией можно найти здесь здесь