Я настроил свой сервер 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 хотя это ортогонально текущей проблеме).
Я не уверен, будет ли ваш закрытый ключ работать в ubuntu, но попробовать стоит. просто скопируйте ключи в /home/yourName/.ssh/ назовите закрытый ключ следующим образом id_rsa, и открытый ключ как id_rsa.pub.
Если это не работает, то вы можете создать свою собственную пару ключей ssh, используя ssh-keygen и скопируйте новый открытый ключ на сервер и используйте ssh следующим образом
ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>
Я не играл с ним, но я слышал, что ssh-agent также можно использовать для управления ssh-ключами.
Поскольку целью шага 4 является добавление вашего открытого ключа в * ~. / ssh / authorized_keys *, поэтому вы можете использовать свой секретный ключ Putty следующим образом вместо выполнения 4 в качестве промежуточного шага:
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 для Linux для выполнения преобразования. Версия Linux - это командная строка, в отличие от версии Windows.
** Будьте осторожны и убедитесь, что у вас есть консольный доступ к окну, потому что, если вы не сделаете это правильно, вы не сможете снова подключиться по 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.
Я не уверен, что этот поток все еще активен, но я наткнулся на аналогичную проблему с Windows 10 anniversary edition, которая теперь поддерживает ядро Ubuntu. Я раньше использовал Putty для подключения к Linux-машине. Для генерации id_rsa в формате linux используйте puttykeygen и загрузите свой закрытый ключ putty, затем нажмите на преобразование и выберите второй вариант.
откройте только что созданный файл ключа и скопируйте все его содержимое, убедитесь, что ваше содержимое начинается с : -----ЗАПУСК ЗАКРЫТОГО КЛЮЧА RSA----- и заканчивается словами -----КОНЕЧНЫЙ ЗАКРЫТЫЙ КЛЮЧ RSA-----
введите id_rsa в свой каталог ~/.ssh и вставьте скопированное содержимое, это необходимо, потому что в противном случае linux не поймет содержимое файла.
Вот и все, попробуйте подключиться по ssh к удаленному серверу, это должно сработать.