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

Я настроил свой сервер Linux на прием подключений с моего домашнего КОМПЬЮТЕРА, добавив открытый ключ, сгенерированный PuTTYgen, в authorized_keys файл.

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

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

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

ssh-keygen -i -f puttygen_key > openssh_key

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

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

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

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

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

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

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

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

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

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

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

apt-get install putty-tools #Install Putty tools in Linuxcd /my-putty-keysputtygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.secssh-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

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

  • В PuTTYgen вы можете непосредственно увидеть (и скопировать + вставить) общественный ключ в формате, используемом OpenSSH authorized_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 справочная страница.

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

На 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

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

Этот процесс намного проще, чем вы думаете. Снова загрузите пару открытых / закрытых ключей, сгенерированную вами в puttygen. В puttygen вы заметите окно в середине экрана с надписью: "Открытый ключ для вставки в открытый файл SSH authorized_keys:".

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

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

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

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

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

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

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

Host myshortname realname.example.com    HostName realname.example.com    IdentityFile ~/.ssh/realname_rsa # private key for realname    User remoteusernameHost myother realname2.example.org    HostName realname2.example.org    IdentityFile ~/.ssh/realname2_rsa  # different private key for realname2    User remoteusername

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

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

Конусы генератора ключей Putty

откройте только что созданный файл ключа и скопируйте все его содержимое, убедитесь, что ваше содержимое начинается с : -----ЗАПУСК ЗАКРЫТОГО КЛЮЧА RSA----- и заканчивается словами -----КОНЕЧНЫЙ ЗАКРЫТЫЙ КЛЮЧ RSA-----

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

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