Невозможно создать автоматические ключи OpenPGP с помощью GnuPG

Я пытаюсь создать автоматические ключи OpenPGP без кодовой фразы для автоматического развертывания защищенных файлов на серверах.

При сгенерированном вручную все идет хорошо (с использованием gpg --no-permission-warning --homedir . --gen-key 2>&1), но в пакетном режиме ничего похожего созданный.

Вот тестовый скрипт:

#!/bin/bash
echo '-- Generating entropy'
sudo dd if=/dev/sda of=/dev/null &
TASK_PID=$!

#GPG Key parameters
cat > gpgparams <<EOF
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 2048
Subkey-Type: RSA
Subkey-Length: 2048
Name-Real: User Name
Name-Email: user@server
Expire-Date: 0
%pubring userserver.pub
%secring userserver.sec
%commit
%echo done
EOF

echo '-- Generating keys'
gpg --no-permission-warning --homedir . --batch --gen-key gpgparams 2>&1
echo "Result: $?"
echo "Files:"
ls -al

echo && echo '-- Killing entropy generator'
sudo kill $TASK_PID

echo && echo '-- Listing keys'
gpg --homedir . --list-keys

echo && echo '-- exporting public key'
gpg --homedir . --export -a user@server > pubkey.txt 2>&1
echo "Files:"
ls -al
echo "Content of public key:"
cat pubkey.txt

echo && echo '-- Printing versions'
echo '> Ubuntu version'
lsb_release -d
echo '> GPG version'
gpg --version --homedir .

И результат:

-- Generating entropy
-- Generating keys
gpg: keyring `./secring.gpg' created
gpg: keyring `./pubring.gpg' created
gpg: Generating a basic OpenPGP key
........+++++
...............+++++
..+++++
...+++++
gpg: done
Result: 0
Files:
total 28
drwx------ 2 user user 4096 Oct 24 11:12 .
drwxrwxr-x 9 user user 4096 Oct 23 23:11 ..
-rw-rw-r-- 1 user user  232 Oct 24 11:11 gpgparams
-rw------- 1 user user    0 Oct 24 11:11 pubring.gpg
-rw------- 1 user user  600 Oct 24 11:12 random_seed
-rw------- 1 user user    0 Oct 24 11:11 secring.gpg
-rwxrwxr-x 1 user user  918 Oct 24 11:11 testScript.sh
-rw-rw-r-- 1 user user 1461 Oct 24 11:12 userserver.pub
-rw------- 1 user user 2763 Oct 24 11:12 userserver.sec

-- Killing entropy generator

-- Listing keys
gpg: ./trustdb.gpg: trustdb created

-- exporting public key
Files:
total 36
drwx------ 2 user user 4096 Oct 24 11:12 .
drwxrwxr-x 9 user user 4096 Oct 23 23:11 ..
-rw-rw-r-- 1 user user  232 Oct 24 11:11 gpgparams
-rw-rw-r-- 1 user user   31 Oct 24 11:12 pubkey.txt
-rw------- 1 user user    0 Oct 24 11:11 pubring.gpg
-rw------- 1 user user  600 Oct 24 11:12 random_seed
-rw------- 1 user user    0 Oct 24 11:11 secring.gpg
-rwxrwxr-x 1 user user  918 Oct 24 11:11 testScript.sh
-rw------- 1 user user   40 Oct 24 11:12 trustdb.gpg
-rw-rw-r-- 1 user user 1461 Oct 24 11:12 userserver.pub
-rw------- 1 user user 2763 Oct 24 11:12 userserver.sec
Content of public key:
gpg: WARNING: nothing exported

-- Printing versions
> Ubuntu version
Description:    Ubuntu 15.04
> GPG version
gpg (GnuPG) 1.4.18
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: .
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

В основном я следил за этой документацией при создании без присмотра ключей, что связан с версией 2 gpg.

Я пропустил что-то особенное о версии 1? Связано ли это с образованием энтропии?

-

Итак, вот рабочий скрипт с использованием флагов --secret-keyring и --keyring:

#!/bin/bash
echo '-- Generating entropy'
sudo dd if=/dev/sda of=/dev/null &
TASK_PID=$!

#GPG Key parameters
cat > gpgparams <<EOF
Key-Type: RSA
Key-Length: 2048
Key-Usage: encrypt
Subkey-Type: RSA
Subkey-Length: 2048
Subkey-Usage: encrypt
Name-Real: User Name
Name-Comment: none
Name-Email: user@server
Expire-Date: 0
%pubring userserver.pub
%secring userserver.sec
%commit
%echo done
EOF

echo '-- Generating keys'
gpg --no-tty --no-permission-warning --homedir . --batch --gen-key gpgparams 2>&1
echo "Result: $?"
echo "Files:"
ls -al

echo && echo '-- Killing entropy generator'
sudo kill $TASK_PID

echo && echo '-- Listing keys'
gpg --homedir . --no-default-keyring --secret-keyring ./userserver.sec --keyring ./userserver.pub --list-secret-keys

echo && echo '-- exporting public key'
gpg --homedir . --no-default-keyring --secret-keyring ./userserver.sec --keyring ./userserver.pub --export -a user@server > pubkey.txt 2>&1
echo "Files:"
ls -al
echo "Content of public key:"
cat pubkey.txt
1
задан 24 October 2015 в 12:56

0 ответов

Другие вопросы по тегам:

Похожие вопросы: