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.Jawaban:
Ya, ini bekerja untuk saya:
tambahkan ini ke Anda
.bashrc
atau cukup tendang sebelum menggunakan gpg.sumber
Saya telah menemukan jawabannya di Situs Web GPG itu sendiri. Agen gagal menemukan di layar mana untuk menampilkan jendela Pinentry. Saya hanya harus meletakkan yang berikut ini di
.*shrc
file saya :sumber
gpg-connect-agent
outputcan't connect to the agent: IPC connect call failed
.gpg-agent
sedang berjalan dengan baik danGPG_AGENT_INFO
env vars sudah diatur dengan benar.export GPG_AGENT_INFO
untuk.bashrc
memperbaiki masalah di atas dengangpg-connect-agent IPC connect call failed
. Saya tidak menambahkan ini sebelumnya karenaecho $GPG_AGENT_INFO
di shell saya baik-baik saja .. tetapi ternyata masih diperlukan.