Назад | Перейти на главную страницу

Использование ключей PGP для SSH

Я использую ключ RSA PGP размером 4096 байт; Поскольку SSH также использует стандарт RSA, возможно ли вообще использовать ключ PGP в качестве ключа SSH без установки дополнительного программного обеспечения на сервере (и как можно реже на клиенте)?

Есть несколько способов, которые могут работать или не работать:

  • ОбезьянаСфера
  • openssh-gpg, патч для OpenSSH
  • SSH.com имеет встроенная поддержка
  • gpg2 в Debian поставляется с gpgkey2ssh инструмент и gpg-agent также может действовать как агент ssh, но я не мог понять, как на самом деле заставить ssh использовать ключ для аутентификации.

SSH2 Версия 2.0.13 представила поддержку аутентификации PGP.

выдержка из SSH The Secure Shell

С помощью информации из ответов на этот вопрос и помощи списка рассылки gnupg-users я смог выяснить, как использовать свой ключ GPG для аутентификации SSH. Для этого есть несколько возможных способов.

Я написал сообщение о некоторых возможных решениях: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key

Подводя итог: либо вы используете GnuPG 2.1, который в настоящее время находится в стадии бета-тестирования. При использовании этой версии вы можете просто запустить gpg-agent с параметром --enable-ssh-support и добавить keygrip для вашего ключа GPG (или подраздела) в ~ / .gnupg / sshcontrol.

Когда вы используете текущую стабильную версию GnuPG (2.0.x), вы можете использовать monkeysphere, чтобы добавить свой ключ в gpg-agent (опять же, после запуска gpg-agent с параметром --enable-ssh-support).

Также можно использовать связку ключей GNOME (или даже обычный ssh-агент) с помощью monkeysphere. Единственная проблема в этом случае заключается в том, что вам придется повторно добавить свой ключ при повторном входе в систему (в Gnome или XFCE). Чтобы решить эту проблему, вы можете вручную экспортировать свой ключ и преобразовать его.

Этот документ показывает, как это сделать на клиенте SSH.com; Я не уверен, что он работает с OpenSSH, но, возможно, стоит попробовать.

Экспорт закрытого SSH-ключа из GPG без установки дополнительного ПО

Найдите ручку желаемого закрытого ключа

gpg --list-secret-keys --with-keygrip

Импортируйте его в новую временную связку ключей gpgsm

gpgsm --gen-key -o /tmp/keyring

2 # выбрать существующий ключ

keygrip_id

3 # шифрование ключевой цели, это, вероятно, не имеет значения

C = манекен, ST = манекен, L = манекен, O = манекен, OU = манекен, CN = манекен # Введите фиктивное имя субъекта X.509

nonexistent@dummy.com #email также

Остальные параметры являются необязательными, поэтому просто введите их, подтвердите информацию и введите пароль дешифрования выбранного ключа.

Преобразование ключа в формат pkcs12

gpgsm -o /tmp/key.p12 --export-secret-key-p12 '&keygrip_id'

Введите еще раз пароль шифрования, как и прежде, чтобы расшифровать его. Затем введите новый пароль, который следует использовать для защиты файла .p12. Если ваша папка / tmp находится в ОЗУ, как моя, вы можете оставить ее пустой, так как она будет безопасно стерта после перезагрузки.

Преобразуйте его в формат, удобный для ssh

Кроме того, он требует удаления первых 4 строк вывода, чтобы он начинался с --- BEGIN PRIVATE KEY ---

openssl pkcs12 -in /tmp/key.p12 -nodes -nocerts | tail -n +5 > /tmp/sshkey
chmod 600 /tmp/sshkey

Вот и ваш sshkey готов к использованию ssh-клиентом. Надеюсь, это поможет, для меня это было необходимо, так как я не смог установить monkeysphere.