Закрытый ключ SSH, сгенерированный ssh-keygen содержит часть открытого ключа. Как мне извлечь этот открытый ключ из закрытого ключа? Я потерял свой открытый ключ, и мне нужно поместить содержимое этого открытого ключа на серверы authorized_keys файл и не хотите создавать новую пару ключей.
Альтернативно сформулировано: как мне создать id_rsa.pub файл из id_rsa файл?
В качестве дополнительного примечания комментарий к открытому ключу теряется. У меня был сайт, который требовал комментария (панель запуска?), Поэтому вам нужно отредактировать ~/.ssh/id_rsa.pub и добавьте комментарий к первой строке с пробелом между комментарием и ключевыми данными. Пример открытого ключа показан ниже в усеченном виде.
ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu
Для ключей, которые были добавлены в SSH-агент (программа, которая работает в фоновом режиме и позволяет избежать необходимости повторного ввода ключевой ключевой фразы снова и снова), вы можете использовать ssh-add -L команда для перечисления открытых ключей для ключей, которые были добавлены в агент (через ssh-add -l). Это полезно, когда SSH-ключ хранится на смарт-карте (и доступ к файлу закрытого ключа невозможен).
Это решение предназначено специально для пользователей, использующих Windows для подключения по SSH к своим удаленным машинам, включая облачные образы на Amazon AWS и GCE.
(Отказ от ответственности)
Недавно я использовал это решение для удаленного входа в новые развернутые образы виртуальных машин на GCE.
Создайте пару открытых/закрытых ключей с помощью puttygen.
Загрузите открытый ключ на свой сервер в облаке или удаленном местоположении.
Описание (как это сделать):
Создайте ключ / пару или используйте существующий закрытый ключ:
Если у вас есть закрытый ключ:
Откройте puttygen, нажмите кнопку загрузки и выберите свой файл закрытого ключа (*.pem).
Если вы это сделаете нет иметь закрытый ключ:
Откройте puttygen,
Выберите желаемый тип ключа SSH2 DSA (вы можете использовать RSA или DSA) в разделе Параметров... и важно, чтобы вы оставили поле парольной фразы пустым,
Нажмите кнопку сгенерировать и следуйте инструкциям для создания пары ключей (открытый/закрытый).
Создайте новый файл 'authorized_keys' (с помощью блокнота):
Скопируйте данные вашего открытого ключа из раздела "Открытый ключ для вставки в файл OpenSSH authorized_keys" генератора ключей PuTTY и вставьте данные ключа в файл "authorized_keys".
Убедитесь, что в этом файле есть только одна строка текста.
Загрузите ключ на сервер Linux:
Откройте WinSCP,
Выберите файловый протокол SFTP и войдите в систему, используя свои учетные данные SSH.
В случае успеха вы увидите структуру домашних каталогов на вашем удаленном компьютере.
Загрузите файл authorized_keys в домашний каталог на удаленном компьютере.
Установите надлежащие разрешения:
Делать .ssh каталог (если он не существует)
Скопируйте authorized_keys файл в каталог .ssh (это заменит любой существующий authorized_keys файл; примите это к сведению).
Если файл существует, просто добавьте содержимое этого файла в существующий файл.
@NickT - pbcopy - это команда MacOSX. Кроме того, это бесполезно, если вы перезагрузились, вышли из системы или скопировали что-либо еще в буфер обмена.