ssh-agent
sangat mudah digunakan, saya memulainya dan menambahkan kunci menggunakan ssh-add keyfile
. Setelah membunuh proses ssh-agent
, semua file hilang.
Bagaimana saya bisa mendapatkan perilaku yang sama gpg-agent
? Program terdekat yang saya temukan adalah gpg-preset-passphrase
. Tetapi melihat halaman manualgpg-agent
, tampaknya direktori dibuat untuk menyimpan kunci pribadi.
Saya bisa saja salah, jadi saya bertanya-tanya bagaimana saya bisa mengatur gpg-agent
sedemikian rupa sehingga tidak ada file / direktori yang dibuat? Jika tidak memungkinkan, saran lain untuk membuat gpg-agent
karya seperti ssh-agent
+ ssh-add
akan diterima juga. Saya tidak mencari solusi GUI seperti Kuda Laut.
gpg-connect-agent
?gpg-preset-passphrase
. Saya berlarigpg-connect-agent
, mendapatkan sebuah shell dan dieksekusisetkey IDOFMYPRIVATEKEYHERE
diikuti olehpreset_passphrase
dan id menghasilkan "ERR 67108924 Tidak Didukung <GPG-agent> - no --allow-preset-passphrase"Jawaban:
Saya memutuskan untuk melihatnya lagi dan mencari tahu cara kerjanya. GPG menggunakan terminologi "cache" untuk menyimpan kata sandi. Dua kendala dapat dikenakan pada waktu penyimpanan maksimum:
Selain itu, ada dua variasi untuk kedua kendala, satu untuk kunci GPG dan satu untuk kunci SSH (jika dukungan diaktifkan).
Entri halaman buku panduan yang relevan dari
gpg-agent(1)
:Frasa sandi selalu di-cache (dalam memori, bukan pada disk! Diverifikasi dengan repositori git
$HOME
), jadi tidak perlu secara eksplisitssh-add
. Misalnya, menandatangani data dummy telah memicu cache:Untuk membuat perubahan permanen pada pengaturan cache agen gpg, edit ~ / .gnupg / gpg-agent.conf` dan tambahkan sesuatu seperti:
Saya telah mencoba mengaktifkan dukungan agen SSH dengan menentukan
enable-ssh-support
, tetapi ini membuat gpg-agent meminta Anda untuk kunci lain untuk mengenkripsi kunci, dan kemudian menyimpan kunci pribadi Anda~/.gnupg/private-keys.d/
. Tidak usah, saya akan tetap menggunakan pendekatan dual ssh-agent / gpg-agent.Beberapa tips bonus:
max-cache-ttl-ssh
dapat ditentukan saat menambahkan kunci, misalnya:ssh-add -t 600 ~/.ssh/id_rsa
Untuk mencegah penyimpanan frasa sandi GPG di agen, nonaktifkan agen. Dalam versi GPG yang lebih baru, opsi
--no-use-agent
ini diabaikan, tetapi Anda bisa mencegah agar agen tidak digunakan dengan menghapus variabel lingkungan yang terkait. Beberapa cara untuk melakukannya:sumber
gpg-agent
aktif? (Periksa daftar proses, misalnya denganps u -C gpg-agent
). Apakah batas waktu cache ditetapkan dengan tepat? Jika Anda menggunakannya untuk menandatangani (bukan otentikasi (SSH)), apakahignore-cache-for-signing
opsi ini tidak disetel?