Saya menjalankan Fedora 22. Saya mencoba mengatur GnuPG agar koneksi SSH saya diautentikasi menggunakan subkunci otentikasi PGP saya yang terletak di Yubikey Neo saya.
Saya memiliki unit systemd yang memulai agen gpg sebagai berikut:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
Dan saya telah mengaktifkan dukungan SSH dalam konfigurasi:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Bagian lain dari pengaturan termasuk menambahkan keygrip kunci saya ke ~/.gnupg/sshcontrol
file, menambahkan kunci publik saya ke host jarak jauh dan mendeklarasikan variabel lingkungan .
Secara global melihat berbagai log setup tampaknya berfungsi, saya dapat melihat bahwa SSH menemukan kunci tetapi sebenarnya gagal menandatanganinya. Jika saya melihat log dari gpg-agent
, saya dapat melihat bahwa ia gagal meluncurkan pinentry
program dan karena itu, tidak meminta kode PIN:
2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>
Apa yang kita lihat di sini adalah bahwa ketika digunakan bersama dengan SSH, beberapa panggilan ioctl gagal saat memanggil pinentry. Namun jika saya menjalankan yang berikut ini:
$ echo "Test" | gpg2 -s
Jendela PIN muncul dan semuanya bekerja dengan baik.
Bisakah Anda membantu saya memahami apa yang terjadi dengan pengaturan ini dan SSH?
tar
kegpg2
pada Mac OS X dan jawaban vigo menyelesaikannya untuk saya.