Как установить закрытый ключ ssh, сгенерированный puttygen?

Я настроил свой сервер Linux на прием подключений от домашнего компьютера, добавив открытый ключ, сгенерированный puttygen, в файл authorized_keys.

Сейчас я пытаюсь подключиться к той же машине, но на этот раз с другой машины Ubuntu. Мне нужно использовать один и тот же закрытый ключ (по странной причине, не спрашивайте ..), и я не совсем понимаю, как установить его на свой клиент Ubuntu.

Нужно ли конвертировать его в какой-нибудь другой формат?

60
задан 29 November 2010 в 19:21

9 ответов

Я не уверен, будет ли ваш приватный ключ работать в Ubuntu, но стоит попробовать. просто скопируйте ключи в /home/yourName/.ssh/ и назовите приватный ключ как id_rsa, а открытый ключ как id_rsa.pub.

Если это не работает, то вы можете создать свою пару ключей ssh, используя ssh-keygen, и скопировать новый открытый ключ на сервер, и ssh следующим образом

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

Я не играл с ним, но я слышал, что ssh-agent также можно использовать для управления ssh-клавишами.

28
ответ дан 29 November 2010 в 19:21

Я нашел еще одно ясное решение.

На puttygen создайте ключ, затем перейдите в Верхнее меню - Convers ion и щелкните экспорт ключа openssh

Содержимое файла будет начинаться и заканчиваться на

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • для пользователя root. Скопируйте этот файл ключа в /root/.ssh/ как id_rsa или id_dsa

  • для другого пользователя Скопируйте этот файл ключа в /home/user/.ssh/ как id_rsa или id_dsa

Примечание:

  1. ] Нет необходимости редактировать authorized_keys .
  2. Я использую amazon linux
  3. Разрешение файла 0600
2
ответ дан 29 November 2010 в 19:21

* * Будьте осторожны и убедитесь, что у вас есть консольный доступ к ящику, потому что, если вы не сделаете это правильно, вы не сможете снова подключиться по ssh, пока не исправите это с консоли.

Процесс намного проще, чем вы думаете. Снова загрузите созданную вами пару открытого и закрытого ключей в puttygen. В puttygen вы увидите окно в середине экрана, в котором говорится: «Открытый ключ для вставки в файл Open SSH authorized_keys:».

выделите все содержимое окна и нажмите Ctrl-c, чтобы скопировать его.

SSH в вашем Linux-окне и вставьте его в файл "/home/username/.ssh/authorized_keys". Я предпочитаю использовать nano и просто щелкаю правой кнопкой мыши, чтобы вставить его. Убедитесь, что все это остается в одной строке.

Измените файл / etc / sshd_config по мере необходимости и перезапустите службу sshd: "service ssh restart"

Если вам нужен образец файла sshd_config, дайте мне знать, и я могу опубликовать свой.

Я сделал это на сервере LTS Ubuntu 8.04, 10.04 и 12.04, и он отлично работает.

1
ответ дан 29 November 2010 в 19:21

По стечению обстоятельств, я просто должен был это сделать. Вам действительно нужно конвертировать ключи в формат OpenSSH. Команда для этого:

ssh-keygen -i -f puttygen_key > openssh_key

затем вы можете скопировать содержимое openssh_key в .ssh/authorized_keys так же, как и обычный SSH ключ.

Опция -i сообщает ssh-keygen, что нужно сделать преобразование. Опция -f сообщает, где искать ключ для преобразования.

Это работает для незашифрованных ключей. Открытый ключ является нешифрованным, но закрытый ключ, скорее всего, зашифрован. Я не уверен, есть ли способ расшифровать закрытый ключ, преобразовать его, а затем перезашифровать. Возможно, будет проще использовать новые ключи, как предполагает другой ответ (и я бы порекомендовал использовать ssh-agent, хотя это ортогонально текущему вопросу).

40
ответ дан 29 November 2010 в 19:21

Andrew Stacey explained how to convert the keys to OpenSSH format on Linux.

Если вы хотите сделать то же самое на Windows, выполните следующие шаги:

  1. Start PuTTYGen.
  2. Нажмите кнопку "Загрузить".
  3. Выберите личный ключ и введите ключевую фразу.
  4. В меню "Преобразования" выберите "Экспорт ключа OpenSSH".
  5. Выберите имя файла назначения.
30
ответ дан 29 November 2010 в 19:21

Как повторно использовать пары ключей Putty в Ubuntu в качестве ключей OpenSSH:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

Так как целью шага 4 является добавление открытого ключа в *~. /ssh/authorized_keys*, так что вы можете использовать ваш секретный ключ Putty таким образом, вместо того, чтобы делать 4 в качестве промежуточного шага:

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys
25
ответ дан 29 November 2010 в 19:21

PuTTY / PuTTYgen использует свой собственный формат пары ключей. Это не будет работать в Linux, где преобладает формат ключей OpenSSH.

  • В PuTTYgen вы можете напрямую видеть (и копировать + вставлять) открытый ключ в формате, используемом OpenSSH Author_keys файл.

  • Вы можете использовать кнопку Сохранить открытый ключ , чтобы сохранить открытый ключ в формате .pub (RFC 4716). В Linux файл обычно называется id_rsa.pub (или id_dsa.pub ). Но обычно в этом нет необходимости.

  • Используйте Конверсии> Экспорт ключа OpenSSH , чтобы экспортировать закрытый ключ в формате OpenSSH. В Linux файл обычно называется id_rsa (или id_dsa ) и хранится в папке .ssh .

См. Официальную Используя PuTTYgen, генератор ключей PuTTY .

Для преобразования можно также использовать версию PuTTYgen для Linux. Версия для Linux - это командная строка, в отличие от версии для Windows.

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

См. Справочную страницу Linux puttygen .

9
ответ дан 29 November 2010 в 19:21

Я не уверен, активен ли этот поток, но я наткнулся на аналогичную проблему с юбилейной версией Windows 10, которая теперь поддерживает ядро ​​Ubuntu. Раньше я использовал Putty для подключения к машине Linux. Для генерации id_rsa в формате linux используйте puttykeygen и загрузите свой закрытый ключ putty, затем нажмите на преобразование и выберите второй вариант.

Putty KeyGenerator conevrsions

откройте вновь созданный файл ключа и скопируйте все его содержимое, убедитесь, что ваш контент начинается с: ----- BEGIN RSA PRIVATE KEY ----- и заканчивается на ----- END RSA PRIVATE KEY -----

vi id_rsa внутри вашего ~ / .ssh и вставьте скопированное содержимое, это необходимо, потому что в противном случае Linux не поймет содержимое файла.

Вот и все, попробуйте ssh на удаленный сервер, он должен работать.

0
ответ дан 22 November 2019 в 23:51

Самый простой способ установить закрытые ключи OpenSSH - создать или отредактировать ~ / .ssh / config , как указано ниже. Вам необходимо экспортировать свой закрытый ключ PuTTY как ключ OpenSSH.

Лучший способ использовать несколько закрытых ключей SSH на одном клиенте

Host myshortname realname.example.com
    HostName realname.example.com
    IdentityFile ~/.ssh/realname_rsa # private key for realname
    User remoteusername

Host myother realname2.example.org
    HostName realname2.example.org
    IdentityFile ~/.ssh/realname2_rsa  # different private key for realname2
    User remoteusername

Это работает в Linux, macOS, Windows, GIT при использовании OpenSSH.

0
ответ дан 5 January 2021 в 23:57

Другие вопросы по тегам:

Похожие вопросы: