Yanıtlar:
Bunun eski bir yazı olduğunu biliyorum, ama benim gibi insanlar için bunun üzerine tökezlediyorlar:
Şimdi (gpg 2.1'den beri) ssh anahtarlarını doğrudan gpg: kullanarak doğrudan çıkarmak mümkündür
gpg --export-ssh-key <key id>!
.
!
İşareti, primer anahtar verilebilir yapan ve anahtar doğrulama özelliğine sahip ([CA]) olup olmadığının kontrol edilmesi atlar, isteğe bağlıdır.
Detaylar:
Bu konu hakkında biraz araştırma yapıyorum ve size bazı ipuçları verebilirim, ancak henüz çalışmasını sağlayacak bir yol bulamadım.
Monkeysphere çok ilginç bir proje gibi gözüküyor, ancak MacPorts ile küçük boş disk alanımı tıkamadan Mac OS X altında derleyemedim.
Denemenizi önerdiğim ilk yöntem, anahtar kimliğinizden (ör: BFB2E5E3) uyumlu bir onaylı_ anahtar girişi oluşturmaktır.
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Burada test amacıyla bir ssh sunucusu çalıştırdığım için onu yerel ana bilgisayarıma ekledim, ancak elbette bunu hedef ana bilgisayara eklemelisiniz ~/.ssh/authorized_keys
. Daha sonra, SSH'ye kimlik doğrulama sırasında bu anahtarın özel bölümünü kullanmasını söylemeniz gerekir, ancak yalnızca tuş takımının bir ASCII zırhlı sürümünü dışa aktarması işe yaramaz:
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-agent
--enable-ssh-support
iyi bilinenler için bir drop-ikame olarak kullanılmasına izin veren bir seçeneğe sahiptir ssh-agent
. Bu yöntemi ssh-add
başlattıktan sonra bazı kişilerin GPG anahtarıyla eklemeye çalıştığını okudum 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
Ama bunun işe yarayacağını sanmıyorum. Gpg-agent manpage diyor ki:
Aracı aracılığıyla kullanılacak olan SSH Anahtarlarının, başlangıçta ssh-add yardımcı programıyla gpg aracısına eklenmesi gerekir. Bir anahtar eklendiğinde, ssh-add, verilen anahtar dosyasının şifresini soracak ve korunmayan anahtar malzemesini aracıya gönderecektir; bu, gpg aracısının yeni alınan anahtarı şifrelemek ve gpg aracısına özgü bir dizinde saklamak için kullanılacak bir parola sormasını sağlar.
Dolayısıyla gpg-agent
, SSH anahtarlarınızı bir GPG şifrelemesi ile korumak için ek bir önlem olarak kullanılması gerektiği anlaşılıyor .
Jérôme Pouiller, blogunda Gpgsm yardımcı programının PCSC12'de anahtarları ve sertifikaları verebileceğini; daha sonra OpenSSH tarafından kullanılabilirler:
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
Ama gpgsm
gpg keypairs'imi kabul etmenin bir yolunu bulamadım .
SSH, kullanıcının özel RSA anahtarını sağlayan bir PKCS # 11 belirteci ile iletişim kurmak için kullanması gereken -I
PKCS # 11 paylaşılan kütüphanesini belirleme seçeneğine sahiptir ssh
.
ve seçeneklerini ssh-keygen
kullanarak OpenSSH uyumlu bir özel (veya genel) anahtar oluşturmak için RFC4716 / SSH2 genel veya özel anahtarını, PEM PKCS8 genel anahtarlarını ve PEM genel anahtarlarını kullanabilirsiniz .-i
-m
Yine de hepsini bir araya getirmenin bir yolunu bulamıyorum.
gpgkey2ssh
değiştirilmiştir --export-ssh-key
. Bunu anlamam biraz zaman aldı. Kullanım gpg --export-ssh-key BFB2E5E3
.
Hayır, birbirleriyle değiştirilemezler. Evet, kimlik doğrulama için GPG anahtarlarını kullanmak mümkündür - Monkeysphere paketinde ham RSA tuş takımını GPG sertifikanızdan çıkarmak için araçlar bulunur.
GPG sertifikanızın "kimlik doğrulama" yetenek bayrağını içeren bir alt anahtara ihtiyacı olacaktır. Böyle bir alt anahtar oluşturmak için bir kez çalıştırın:
monkeysphere g
Şimdi kimlik doğrulama alt anahtarlarınızı ssh- agent'a ekleyin :
monkeysphere s
Biraz alakalı: bu gnupg kullanıcıları dizisi .
Bu soruya verilen cevaplardan gelen bilgiler ve gnupg kullanıcıları posta listesinin yardımıyla GPG anahtarımı SSH kimlik doğrulaması için nasıl kullanabileceğimi çözebildim. Claudio Floreani'nin cevabında daha önce de belirtildiği gibi, bunu yapmanın birkaç olası yöntemi var.
Bazı olası çözümler hakkında bir blog yazısı yazdım: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
Özetlemek için: Ya şu anda beta aşamasında olan GnuPG 2.1 kullanıyorsunuz. Bu sürümü kullanırken, gpg-agent'ı --enable-ssh-support seçeneğiyle başlatabilir ve GPG anahtarı (veya alt anahtarı) için keygrip komutunu ~ / .gnupg / sshcontrol içine ekleyebilirsiniz.
Mevcut kararlı GnuPG sürümünü (2.0.x) kullanırken, anahtarınızı gpg-agent'a eklemek için maymun küreyi kullanabilirsiniz (yine, --enable-ssh-support seçeneğiyle gpg-agent'ı başlattıktan sonra).
Maymun yardımı ile GNOME anahtarlığını (hatta normal ssh-agent'ını) kullanmak da mümkündür. Bu durumda tek sorun, tekrar giriş yaparken (Gnome veya XFCE içine) anahtarınızı tekrar eklemeniz gerekmesidir. Bunu çözmek için anahtarınızı manuel olarak dışa aktarabilir ve dönüştürebilirsiniz.