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

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

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

Ответ 1

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

  • Open 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
    

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

Ответ 2

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

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

Рекомендации

Копия статьи

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

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

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

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

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

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

Ответ 3

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

enter image description here

Ответ 4

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

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

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

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

$ puttygen keyfile.pem -L

Ответ 5

sudo apt-get install putty

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

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

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

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

ssh -v [email protected] -i my-openssh-key

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

Ответ 6

Недавно я столкнулся с этой проблемой, поскольку я перешел из 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;

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

Ответ 7

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

PuTTY Faq: A.2.2

Ответ 8

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

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

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

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

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

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

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