Как конвертировать пары ключей SSH, созданные с помощью PuttyGen (Windows) в пары ключей, используемые ssh-agent и KeyChain (Linux)
Я создал пары ключей, используя PuttyGen
и в Pageant
, Так что я должен ввести свой пароль только один раз, когда моя система загружается.
как это сделать в Linux? Я слышал о keychain
но я слышал, что он использует другой формат пары ключей - я не хочу менять свои ключи Windows, и было бы неплохо, если бы я мог легко подключиться одинаково как в Windows, так и в Linux.
8 ответов
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-style, вы можете преобразовать его в стандартный формат 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. Окна помещает некоторые данные в разные области и добавляет разрывы строк.
решение: когда вы доберетесь до экрана открытого ключа в создавая свой пара ключей в puttygen, скопируйте открытый ключ и вставьте его в текст файл с расширением .паб. Вы сэкономите sysadmin часов разочарование чтения сообщений, как это.
однако, сисадмины, вы неизменно получаете wonky ключевой файл, который бросает нет сообщения об ошибке в журнале auth, за исключением, не найден ключ, попытка пароль; даже если все остальные ключи работают нормально, и вы отправили этот ключ обратно пользователю 15 раз.
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
следует преобразовать существующий открытый ключ puttygen в формат OpenSSH.
новые версии генератор puttygen (мой 0.64) могут показать открытый ключ OpenSSH, который будет вставлен в систему linux в , как показано на следующем рисунке:
в качестве альтернативы, если вы хотите, чтобы захватить частные и открытые ключи из шпатлевки формированного файла ключа вы можете использовать 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.
Я думаю, что TCSgrad пытался спросить (несколько лет назад), как заставить Linux вести себя так, как его машина Windows. То есть существует агент (pageant), который содержит расшифрованную копию закрытого ключа, так что парольная фраза должна быть вставлена только один раз. Затем клиент ssh, putty, может войти в компьютеры, где его открытый ключ указан как "авторизованный" без запроса пароля.
аналогом для этого является Linux,действуя в качестве клиента ssh, есть агент проведение расшифрованного закрытого ключа, так что, когда TCSgrad набирает "SSH host", команда ssh получит его закрытый ключ и пойдет без запроса пароля. хозяин, конечно, должен держать открытый ключ в ~/.ssh / authorized_keys.
аналог Linux для этого сценария выполняется с использованием ssh-agent (аналог конкурса) и ssh-add (аналог добавления закрытого ключа к конкурсу).
метод, который работал для меня было использование: $ ssh-агент $SHELL эта оболочка был волшебный трюк я должен сделать агент бегать и бегать. Я нашел это где-то в сети, и это закончилось несколькими часами ударов головой о стену.
теперь у нас есть аналог запуска pageant, агент без загруженных ключей.
ввод $ ssh-добавить сам по себе добавит (по умолчанию) закрытые ключи, перечисленные в файлах идентификаторов по умолчанию в ~/.тсс.
веб-статью с гораздо более подробной информацией можно найти здесь