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

43

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

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

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

    
задан Assaf Lavie 29.11.2010 в 16:12
источник

7 ответов

23

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

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

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

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

    
ответ дан theTuxRacer 29.11.2010 в 17:18
источник
35

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

ssh-keygen -i -f puttygen_key > openssh_key

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

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

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

    
ответ дан Loop Space 29.11.2010 в 21:25
24

Эндрю Стейси объяснил , как преобразовать ключи в формат OpenSSH в Linux.

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

  1. Запустите PuTTYGen.
  2. Нажмите "Загрузить".
  3. Выберите свой закрытый ключ и введите кодовую фразу.
  4. В меню "Конверсии" выберите "Экспорт ключа OpenSSH".
  5. Выберите имя файла назначения.
ответ дан hheimbuerger 09.12.2010 в 23:53
22

Как повторно использовать пары ключей 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
    
ответ дан user18617 26.05.2011 в 09:32
6

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

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

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

  • Используйте Conversions > Экспортируйте ключ 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 man page .

    
ответ дан Martin Prikryl 12.02.2015 в 13:14
1

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

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

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

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

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

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

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

    
ответ дан ErnestA 22.02.2013 в 04:58
1

Я нашел еще одно четкое решение.

На puttygen создайте ключ, затем перейдите в меню «Вверх» - «Конверсия» и нажмите экспорт ключа 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
ответ дан P-Kumar 07.12.2016 в 07:12