В настоящее время у меня есть SSH-ключ, который я использовал некоторое время, и я хотел бы начать использовать GnuPG с новым набором ключей. Однако, учитывая, что я использовал свой ключ целую вечность, я хотел бы все еще использовать этот ключ в GPG в качестве основного / первичного ключа. Я попытался импортировать ключ с помощью этих инструкций .
Но в итоге я получаю то, что считается «подключом». Более того, если я попытаюсь импортировать его без создания стандартного ключа GPG, GPG даже не увидит этот подраздел. (Я предполагаю, что подраздел должен быть подписан главным ключом.)
Как использовать этот ключ в качестве основного ключа в secring.gpg?
Ответы:
Простой ответ: вы этого не делаете.
Ключи SSH и ключи GnuPG (фактически, OpenPGP) совершенно разные, хотя оба протокола могут использовать пары ключей RSA.
И кроме того, почему вы хотите это сделать? Даже если бы вы использовали один и тот же материал ключа для составления вашего ключа PGP, вам все равно пришлось бы распространять свой ключ в качестве ключа PGP. Скорее всего, вы не передавали свой открытый ключ SSH людям, с которыми вы поддерживаете связь, поэтому с точки зрения распространения ключей нет никакой разницы: им нужно будет получить открытый ключ от вас. И даже если вы распространяли свой открытый ключ SSH среди других людей, им нужно будет предпринять некоторые дополнительные шаги, чтобы иметь возможность импортировать его в свою реализацию OpenPGP, что может быть или не быть простым.
Как справедливо указал Касперд, должен быть только один способ интерпретировать (в частности) подпись. Если бы вы использовали один и тот же ключ как для PGP, так и для SSH, если кто-то мог бы заставить вас подписать специально созданное сообщение (что является предполагаемой возможностью при определенных атаках с использованием системы сигнатур) в одном, то даже если обе системы безопасны в изоляции, это может быть возможно создать такое сообщение таким образом, что оно имеет одно значение в одной из систем, но другое значение в другой. Это само по себе было бы уязвимостью. (Используемый? Кто знает. Но зачем рисковать?)
Пары ключей PGP и SSH являются долговременными ключами, которые используются для защиты эфемерных (сообщения и сеанса) симметричных ключей, а также для проверки подлинности удаленной стороны. Это делает закрытый ключ PGP или SSH гораздо более значимым целевым объектом для злоумышленника, чем соответствующий симметричный ключ. Если вы используете один и тот же материал ключа для обоих, и злоумышленник может это понять, это только увеличивает ценность успешной атаки на эту пару ключей.
Не рассматривая ни один из протоколов подробно, я полагаю, что признание того, что один и тот же материал ключа используется в обоих, вероятно, будет довольно тривиальным, поскольку открытый ключ в основном передается в открытом виде.
Просто сгенерируйте новый ключ PGP. Если вы хотите, то сделайте его RSA и такой же длины, как ваш ключ SSH. (Ни один здравомыслящий человек не собирается смотреть на это намного ближе, чем проверка отпечатка пальца в любом случае.) Затем раздайте открытый ключ людям, с которыми вы хотите переписываться, в качестве ключа PGP. Это будет намного проще для всех и, скорее всего, безопаснее, за счет небольшого количества энтропии из случайного пула энтропии вашей системы, которое в любом случае должно быть быстро пополнено.
Если в вашем секретном брелоке есть несколько ключей и вы хотите указать, какой из них следует использовать по умолчанию, используйте директивы
default-key
и, возможно,default-recipient{,-self}
в вашем ~ / .gnupg / gnupg.conf.источник
Вы можете преобразовать SSH-ключ в ключ OpenPGP с помощью инструмента
pem2openpgp
из проекта monkeysphere . Этот ключ затем может быть импортирован gnupg как обычная пара закрытых / открытых ключей. Как уже упоминалось в другом ответе, это, как правило, не очень хорошая идея, поскольку в ssh нет понятия сертификатов, поэтому вы эффективно добавляете в существующий ключ возможность, которой у него раньше не было. Обычно это не используется в криптографии.В любом случае я сделал это с одним из моих ключей ssh, но добавил пару ключей к другому ключу OpenPGP в качестве подключа, который имеет только один флаг возможности: аутентификация. Этот флаг предназначен для подобных ситуаций, когда вы не хотите подписывать или шифровать что-либо с помощью пары ключей (значение
--encrypt
и--sign
параметры для gnupg), но вы хотите, чтобы он был в вашем ящике для ключей для аутентификации с OpenSSH и gnupg-agent в любом случае.Для более подробной информации смотрите документацию по monkeysphere.
источник
Могут быть веские причины для преобразования обычного ключа формата PKCS для импорта в gpg.
Например, если вы хотите поместить его на смарт-карту. Средства, предоставляемые gpg с помощью своих карт-информации и команд редактирования карт, очень полезны для этой цели, так почему бы не использовать его в качестве инструмента? Единственное препятствие, которое нужно преодолеть, это ... точно: импортировать ключ из стандартного формата PKCS # 8 (или «необработанного» формата RSA PKCS # 1) в хранилище ключей gpg для дальнейшей обработки.
Итак - обратите внимание на мое возражение против утвержденного ответа! :)
Действительно полезный ответ на этот вопрос можно найти здесь: /unix/276317/how-can-i-import-a-key-in-pem-format-not-openpgp-into -gpg
источник
Используйте это в Ubuntu 16.04 или Windows WSL.
Импортная карточка. Может быть сделано на Windows или Linux.
Переместить на карту
Найдите идентификатор ключевой подписи.
Переместить ключ аутентификации на карту
Выберите номер для слота аутентификации.
Вы сделали здесь.
Не забудьте удалить ключ из цепочки для ключей gpg, если вы используете карту. Используйте идентификатор ключа сверху.
Разное
Не требуется, но может быть полезно получить ключ в текстовом формате pgp.
источник