Я займаюся деякими дослідженнями на цю тему і можу дати вам підказки, але я ще не знайшов способу змусити її працювати.
Мавпасфера
Monkeysphere здається дуже цікавим проектом, але мені не вдалося скомпілювати його під Mac OS X, не засмітивши мій маленький вільний простір на диску MacPorts.
Використання gpgkey2ssh
Перший спосіб, який я пропоную вам спробувати, - це створити сумісний запис дозволених ключів з вашого ідентифікатора ключа (наприклад, BFB2E5E3) за допомогою:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Тут я додав його до свого localhost, оскільки я запустив ssh-сервер для тестування, але, звичайно, слід додати це до цільового хоста ~/.ssh/authorized_keys
. Далі потрібно сказати SSH використовувати приватну частину цього ключа під час аутентифікації, але просто експортувати броньовану версію ASCII з клавіатури не працює:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
Використання gpg-агента
gpg-agent
має можливість, --enable-ssh-support
що дозволяє використовувати його як заміну для добре відомих ssh-agent
. Я читав про деяких людей, які намагаються додати через ssh-add
свій ключ GPG після запуску gpg-agent
таким чином:
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
Але я не думаю, що це колись спрацює. На сторінці на gpg-агенті написано:
Ключі SSH, які мають використовуватися через агент, потрібно додати до gpg-агента спочатку через утиліту ssh-add. Коли ключ доданий, ssh-add запитає пароль наданого файлу ключів та надішле незахищений ключовий матеріал агенту; це змушує gpg-агент запитувати парольну фразу, яку потрібно використовувати для шифрування щойно отриманого ключа та зберігання його у специфічному каталозі gpg-агента.
Тож здається, що це gpg-agent
слід використовувати як додатковий захід для захисту ваших SSH ключів із шифруванням GPG.
Перетворення ключа GPG у OpenSSH
Джером Пуулер у своєму блозі пише, що утиліта Gpgsm може експортувати ключі та сертифікати в PCSC12; вони можуть бути використані OpenSSH:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
Але я не знайшов способу змусити gpgsm
прийняти свої gpg клавіатури.
Інші речі, які ви можете спробувати
SSH має -I
можливість вказати спільну бібліотеку PKCS # 11 ssh
для спілкування з маркером PKCS # 11, що забезпечує приватний ключ RSA користувача.
ssh-keygen
можна використовувати відкритий або приватний ключ RFC4716 / SSH2, відкриті ключі PEM PKCS8 і відкриті ключі PEM для генерації приватного (або відкритого) ключа, сумісного з OpenSSH, використовуючи параметри -i
та -m
.
Проте я не можу знайти спосіб зібрати все це разом.
flag
посилання під запитанням), а не надсилаючи одну і ту ж відповідь двічі. Дякуємо за детальну відповідь!