Saya menggunakan openssh7.5p1 dan gnupg 2.1.21 di arch linux (ini adalah versi default yang datang dengan arch). Saya ingin menggunakan gpg-agent
sebagai agen ssh. Saya memasukkan yang berikut ini di ~/.gnupg/gpg-agent.conf
:
pinentry-program /usr/bin/pinentry-qt
enable-ssh-support
Arch secara otomatis memulai gpg-agent dari systemd, jadi saya atur
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
Ketika saya menjalankan ssh-add -l
, itu tidak melaporkan identitas dan ps
melaporkan suatu gpg-agent --supervised
proses seperti yang saya harapkan.
Sayangnya, ketika saya berlari ssh-add
, apa pun jenis kuncinya, itu tidak berhasil. Berikut adalah contoh bagaimana saya mencoba dsa:
$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation
Semua fungsi gpg lainnya berfungsi dengan baik (mengenkripsi / mendekripsi / menandatangani). Juga, kunci yang saya hasilkan berfungsi dengan baik jika saya menggunakannya secara langsung dengan ssh, dan mereka berfungsi dengan baik jika saya menjalankan ssh-agent
yang datang dengan openssh.
Dokumentasi mengatakan bahwa ssh-add
harus menambahkan kunci ~/.gnupg/sshcontrol
, tetapi jelas tidak ada yang terjadi.
Pertanyaan saya: Apa cara termudah untuk memuat kunci yang dihasilkan oleh openssh's ssh-keygen
into gpg-agent
, dan dapatkah seseorang memotong dan menempel sesi terminal yang menunjukkan cara kerjanya?
Jawaban:
Jawabannya tampaknya berjalan:
Saya tidak tahu mengapa program pinentry bekerja dengan baik untuk keperluan lain seperti mendekripsi file, tetapi tidak berhasil
ssh-add
.Meskipun ini sekarang berfungsi, ia juga membuat salinan kunci privat ssh yang tidak muncul di bawah
gpg -Kv
, dan lebih lanjut sepertinya tidak memungkinkan Anda untuk mengubah frasa sandi pada kunci pribadi Anda (karena Anda tidak dapat mengeditnya dengan--edit-key
) . Pada dasarnya saya sangat tidak senang dengan caragpg-agent
memberikan visibilitas rendah ke tempat rahasia Anda sedang disalin. Jika Anda menjawab pertanyaan ini karena Anda berharapgpg-agent
bisa menjadi alternatif yang lebih baikssh-agent
, maka saya mendorong Anda untuk tetap bertahanssh-agent
daripada mencoba jawaban saya. Alasan utama untuk memilihgpg-agent
adalah jika Anda perlu menggunakan kartu pintar.sumber
Dalam kasus saya, masalahnya adalah program pinentry yang digunakan. Saya menggunakan pinentry-emacs. Tampaknya ia tidak menangani jendela entri entri bidang teks ganda yang
ssh-add
dipicu saat digunakan dengan gpg-agent.Menghapus pinentry-emacs dan menginstal pinentry GTK memecahkan masalah di sini.
sumber