Saya temukan di https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html#Unattended-GPG-key-generation method untuk menghasilkan kunci gpg tanpa interaksi pengguna, tetapi tidak sepertinya berhasil.
Skrip saya adalah:
#!/usr/bin/env bash
rm -rf .gnupg
mkdir -m 0700 .gnupg
touch .gnupg/gpg.conf
chmod 600 .gnupg/gpg.conf
tail -n +4 /usr/share/gnupg2/gpg-conf.skel > .gnupg/gpg.conf
touch .gnupg/{pub,sec}ring.gpg
cat >.gnupg/foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 2048
Subkey-Type: RSA
Subkey-Length: 2048
Name-Real: User 1
Name-Comment: User 1
Name-Email: [email protected]
Expire-Date: 0
Passphrase: kljfhslfjkhsaljkhsdflgjkhsd
%pubring foo.pub
%secring foo.sec
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
gpg2 --verbose --batch --gen-key .gnupg/foo
Ketika saya menjalankannya, ini menunjukkan:
=$ ./gen.keys.sh
gpg: Generating a basic OpenPGP key
gpg: no running gpg-agent - starting one
gpg: writing public key to `foo.pub'
gpg: writing secret key to `foo.sec'
Tapi kemudian hang.
Ketika saya memeriksa, sementara itu, pohon ps untuk pengguna ini, saya melihat:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tstpg 22603 0.0 0.0 24108 5688 pts/9 Ss 14:59 0:00 -bash
tstpg 22624 0.0 0.0 13688 3168 pts/9 S+ 14:59 0:00 \_ bash ./gen.keys.sh
tstpg 22632 0.2 0.0 27428 3676 pts/9 SL+ 14:59 0:00 \_ gpg2 --verbose --batch --gen-key .gnupg/foo
tstpg 22634 0.3 0.0 18072 2884 pts/9 SL+ 14:59 0:00 \_ gpg-agent --server
Dalam ~ / .gnupg / gpg.conf tidak disebutkan tentang agen, dan saya tidak tahu apa yang coba dilakukan.
File foo.pub/foo.sec dibuat dalam direktori home, tetapi kosong.
Apa yang saya lewatkan? Bagaimana cara menghasilkan kunci tanpa interaksi pengguna?
Versi:
- gpg (GnuPG) 2.0.26
- libgcrypt 1.6.2
/dev/random
((dan karena itu angka yang sangat tidak dapat diprediksi dari/dev/urandom
hampir sepanjang waktu), karena saya memiliki perangkat perangkat keras yang menggunakan tunneling kuantum untuk menghasilkan entropi yang secara fisik melekat pada server saya (lihat atas).Saya menemukan ada beberapa perubahan sederhana yang membuat skrip Anda berfungsi. Saya juga menyertakan beberapa tes sehingga setelah kunci dibuat, secara otomatis akan diuji.
Saya juga menghapus kata sandi sehingga tes kunci dapat otomatis.
sumber
Mengerjakan ini sebagai bagian dari menghasilkan kunci untuk instalasi aplikasi otomatis. Menginstal dan memulai paket ' rngd ' untuk menghasilkan entroy akan memperbaiki masalah Anda. Mudah dipasang dan digunakan.
Ini kodenya .
/dev/hwrandom
secara default, tetapi dapat dimodifikasi) untuk memberikan sumber entropisumber
urandom
digunakan sebagai sumber, yang tidak dianjurkan. wiki.archlinux.org/index.php/Rng-toolsWarning: Some tutorials available in the Internet, and even early versions of rng-tools package, recommend the following line for systems without TRGN: RNGD_OPTS="-o /dev/random -r /dev/urandom" Of course, this is a really bad idea, since you are simple filling the kernel entropy pool with entropy coming from the kernel itself! If your system does not have an available TRGN consider using haveged instead. See FS#34580 for details.
/dev/hwrandom
secara default dan dapat dimodifikasi. Lihat halaman manual.urandom
dan melakukannya tidak dianjurkan.Ini adalah salah satu yang dapat Anda gunakan tetapi saya akan merekomendasikan menjalankan skrip ini di terminal baru agar tidak mempengaruhi yang Anda miliki saat ini. Skrip ini akan terus menghasilkan entropi dengan menjaga mesin sibuk dan macet dalam loop yang tak terbatas hingga pengguna keluar dari skrip. Tidak diperlukan interaksi pengguna hingga setelah pembuatan kunci. Semua skrip lakukan adalah daftar file selamanya.
Mungkin perlu beberapa menit (kadang-kadang 10+) untuk menghasilkan tergantung pada mesin Anda dan ukuran kunci tetapi itu bagus untuk tidak harus berinteraksi dengannya.
sumber