Как упомянул Роланд в своем ответе, это предупреждение о том, что ssh-agent
он не понимает формат открытого ключа, и даже в этом случае открытый ключ не будет использоваться локально.
Тем не менее, я также могу уточнить и ответить, почему это предупреждение. Это просто сводится к тому, что генератор ключей PuTTY генерирует два разных формата открытых ключей в зависимости от того, что вы делаете в программе.
Примечание. В моем объяснении ключевые файлы, которые я буду использовать / генерировать, будут именоваться id_rsa
с соответствующими расширениями. Кроме того, для удобства копирования и вставки предполагается, что родительская папка ключей - это ~/.ssh/
. Отрегулируйте эти детали в соответствии со своими потребностями.
Форматы
Ссылка на соответствующую документацию PuTTY
СШ-2
Когда вы сохраняете ключ с помощью генератора ключей PuTTY с помощью кнопки «Сохранить открытый ключ», он будет сохранен в формате, определенном RFC 4716 .
Пример:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH
Вопреки распространенному мнению, этот формат не сохраняется генератором. Однако он создается и отображается в текстовом поле под названием «Открытый ключ для вставки в файл авторизованных ключей OpenSSH». Чтобы сохранить его как файл, вам нужно вручную скопировать его из текстового поля и вставить в новый текстовый файл.
Для ключа, показанного выше, это будет:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
Формат ключа прост, ssh-rsa <signature> <comment>
и его можно создать, переставив файл в формате SSH-2.
Восстановление открытых ключей
Если вы используете ssh-agent
, у вас, вероятно, также будет доступ к ssh-keygen
.
Если у вас есть закрытый ключ OpenSSH ( id_rsa
файл), вы можете создать файл открытого ключа OpenSSH, используя:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
Если у вас есть только закрытый ключ PUTTY ( id_rsa.ppk
файл), вам нужно сначала его преобразовать.
- Откройте генератор ключей PuTTY.
- В строке меню нажмите «Файл»> «Загрузить закрытый ключ».
- Выберите ваш
id_rsa.ppk
файл
- В строке меню нажмите «Конверсии»> «Экспорт ключа OpenSSH».
- Сохраните файл как
id_rsa
(без расширения)
Теперь, когда у вас есть закрытый ключ OpenSSH, вы можете использовать ssh-keygen
инструмент, как указано выше, для выполнения манипуляций с ключом.
Бонус: формат открытого ключа PKCS # 1 с кодировкой PEM
Честно говоря, я не знаю, для чего используется этот ключ, потому что он мне не нужен. Но у меня есть это в своих записях, которые я собирал на протяжении многих лет, и я включу его сюда для благости. Файл будет выглядеть так:
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
Этот файл можно сгенерировать с помощью закрытого ключа OpenSSH (созданного в разделе «Восстановление открытых ключей» выше), используя:
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
В качестве альтернативы вы можете использовать открытый ключ OpenSSH, используя:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
Ссылки: