Как я получаю открытый ключ от закрытого ключа SSH?

Закрытый ключ SSH, как сгенерировано ssh-keygen содержит часть с открытым ключом. Как я получаю этот открытый ключ от закрытого ключа? Я потерял свой открытый ключ и должен поместить содержание этого открытого ключа в серверах authorized_keys файл и не хочет создавать новую пару ключей.

Кроме того, формулируемый: как я создаю id_rsa.pub файл от a id_rsa файл?

450
задан 15 November 2017 в 16:35

2 ответа

Я нашел ответ на Отказе сервера: Создать общедоступный ключ SSH из закрытого ключа?

Опция -y производит открытый ключ:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Как примечание стороны, потерян комментарий открытого ключа. У меня был сайт, который потребовал комментария (Панель запуска?), таким образом, необходимо отредактировать ~/.ssh/id_rsa.pub и добавьте комментарий к первой строке с пространством между комментарием и ключевыми данными. Открытый ключ в качестве примера показывают усеченный ниже.

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

Для ключей, которые были добавлены к Агенту SSH (программа, которая работает в фоновом режиме и избегает потребности в том, чтобы повторно ввести пароль файла ключей много раз), можно использовать ssh-add -L управляйте для списка открытых ключей для ключей, которые были добавлены к агенту (через ssh-add -l). Это полезно, когда ключ SSH хранится на смарт-карте (и доступ к файлу секретных ключей не возможен).

689
ответ дан 7 December 2019 в 12:27

Это - решение, специально для пользователей, использующих Windows для SSH в их удаленные машины, включая облачные изображения на Amazon AWS и GCE.

(Правовая оговорка)

Я недавно использовал это решение удаленного входа в систему новых развернутых образов виртуальной машины на GCE.


Инструменты использовали:

  1. puttygen
  2. WinSCP

Шаги для выполнения:

  1. Генерируйте пару "открытый/закрытый ключ" с помощью puttygen.
  2. Загрузите открытый ключ на свой сервер в облачном или удаленном месте.

Описание (как сделать это):

  1. Генерируйте ключ/пару или используйте существующий закрытый ключ:

    Если у Вас есть закрытый ключ:

    Откройте puttygen, нажмите кнопку загрузки и выберите Ваш закрытый ключ (*.pem) файл.

    Если у Вас нет закрытого ключа:

    • Откройте puttygen,
    • Выберите желаемый ключевой тип SSH2 DSA (можно использовать RSA или DSA) в разделе Parameters..., и важно, чтобы Вы оставили незаполненное поле пароля,
    • Нажатие генерирует и следует инструкциям для генерации (общедоступной/частной) пары ключей.

    Sample Key Generation pic

  2. Создайте новый 'authorized_keys' файл (с Блокнотом):

    Скопируйте свои данные с открытым ключом из раздела "Public key for pasting into OpenSSH authorized_keys file" Генератора Ключа PuTTY и вставьте ключевые данные в "authorized_keys" файл.

    Удостоверьтесь, что существует только одна строка текста в этом файле.

  3. Загрузите ключ к серверу Linux:

    • Откройте WinSCP,
    • Выберите файловый протокол SFTP и войдите в систему с Вашими учетными данными SSH.
    • На успехе Вы видите структуру корневого каталога в своей удаленной машине.

    Загрузите authorized_keys файл на корневой каталог в удаленной машине.

  4. Верные полномочия набора:

    Сделайте a .ssh каталог (если это не существует),

    Скопируйте authorized_keys файл к .ssh каталогу (это заменит любого существующего authorized_keys файл; примите во внимание это).

    Если файл существует, просто добавьте содержание этого файла в существующий файл.

    Команды выполнения для установки полномочий:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

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

Дальнейшее чтение:

  1. Генерация и загрузка ключей SSH в соответствии с Windows

  2. Аутентификация без использования пароля Ключ OpenSSH, сертификаты .pem и .pub

14
ответ дан 7 December 2019 в 12:27

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

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