Я хочу создать RSA
ключ GPG
и использовать его при SSH
входе в систему. Это вообще возможно? Если так, то как?
изменить: см. ответ @ wwerner, я не пробовал, но, похоже, это текущее решение (по состоянию на 2018 г.)
ssh
gnupg
public-key
private-key
дестан
источник
источник
Я провожу некоторые исследования по этой теме и могу дать вам несколько советов, но я пока не нашел способа заставить это работать.
Monkeysphere
Monkeysphere кажется очень интересным проектом, но я не смог скомпилировать его под Mac OS X без засорения моего небольшого свободного дискового пространства с помощью MacPorts.
Использование gpgkey2ssh
Первый способ, который я предлагаю вам попробовать, - это создать совместимую запись authorized_keys из вашего идентификатора ключа (например, BFB2E5E3) с
Здесь я добавил его на мой локальный хост, так как я запускал ssh-сервер для тестирования, но, конечно, вы должны добавить это на целевой хост
~/.ssh/authorized_keys
. Далее необходимо указать SSH использовать закрытую часть этого ключа во время аутентификации, но простой экспорт защищенной версии ASCII пары ключей не работает:Использование gpg-agent
gpg-agent
имеет опцию,--enable-ssh-support
которая позволяет использовать его в качестве замены для известныхssh-agent
. Я читал о некоторых людях, пытающихся добавитьssh-add
их ключ GPG после запускаgpg-agent
таким образом:Но я не думаю, что это когда-нибудь сработает. На странице руководства gpg-agent написано:
Так что, похоже, это
gpg-agent
следует использовать в качестве дополнительной меры для защиты ваших ключей SSH с помощью шифрования GPG.Преобразование ключа GPG в OpenSSH
Жером Пуйлер в своем блоге пишет, что утилита Gpgsm может экспортировать ключи и сертификаты в PCSC12; затем они могут быть использованы OpenSSH:
Но я не нашел способ заставить
gpgsm
принять мои пары ключей gpg.Другие вещи, которые вы можете попробовать
SSH имеет
-I
возможность указать общую библиотеку PKCS # 11, которуюssh
следует использовать для связи с токеном PKCS # 11, предоставляющим личный ключ RSA пользователя.ssh-keygen
может использовать открытый или закрытый ключ RFC4716 / SSH2, открытые ключи PEM PKCS8 и открытые ключи PEM для генерации открытого (или открытого) ключа, совместимого с OpenSSH, с использованием параметров-i
и-m
.Тем не менее я не могу найти способ собрать все это вместе.
источник
gpgkey2ssh
было заменено на--export-ssh-key
версии 2.1.11 (2016-01-26). Мне понадобилось время, чтобы понять это. Использование естьgpg --export-ssh-key BFB2E5E3
.Нет, они не взаимозаменяемы. Да, для аутентификации можно использовать ключи GPG - в пакете Monkeysphere есть инструменты для извлечения необработанной пары ключей RSA из вашего сертификата GPG.
Вашему сертификату GPG понадобится подраздел с флагом возможности «аутентификации». Чтобы создать такой подраздел, выполните один раз:
Теперь добавьте ваши подразделы аутентификации в ssh-agent :
Несколько актуально: это ветка gnupg-users .
источник
Получив информацию из ответов на этот вопрос и с помощью списка рассылки gnupg-users, я смог выяснить, как использовать мой ключ GPG для аутентификации SSH. Как уже упоминал Клаудио Флориани в своем ответе, есть несколько возможных способов сделать это.
Я написал пост в блоге о некоторых возможных решениях: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
Подводя итог: либо вы используете GnuPG 2.1, которая в настоящее время находится в бета-версии. При использовании этой версии вы можете просто запустить gpg-agent с опцией --enable-ssh-support и добавить ключевую рукоятку для вашего ключа GPG (или подключа) в ~ / .gnupg / sshcontrol.
Когда вы используете текущую стабильную версию GnuPG (2.0.x), вы можете использовать monkeysphere, чтобы добавить свой ключ в gpg-agent (опять же, после запуска gpg-agent с опцией --enable-ssh-support).
Также возможно использовать набор ключей GNOME (или даже обычный ssh-агент) с помощью monkeysphere. Единственная проблема в этом случае заключается в том, что вам придется повторно добавлять ключ при повторном входе в систему (в Gnome или XFCE). Чтобы решить эту проблему, вы можете вручную экспортировать ваш ключ и конвертировать его.
источник