Цель ОП Мухаммеда, кажется, состоит в том, чтобы держать его ключи ОБЩЕСТВЕННЫЙ и СЕКРЕТ врозь. В конце концов, хотим ли мы сохранить Секретный ключ с данными, которые использовались для шифрования? Таким образом, Мохаммед и еще 10 650+ (в то время, когда я пишу это) интересуются если / как это возможно. На самом деле это так, и вот как вы это делаете:
Общедоступный хост имеет только два ключа: Оба являются публичными ключами
Ваш GPG Открытый ключ, используемый для шифрования данных
Ваш SSH Открытый ключ в .ssh / authorized_keys для упрощения неинтерактивных входов в систему.
Обход зашифрованного файла с использованием разделения открытого секретного ключа:
Следующий фрагмент кода bash при выполнении на хосте с секретным ключом извлечет зашифрованный файл с DMZ-хоста через scp и перенаправит стандартный дешифрованный вывод gpg обратно на DMZ-хост в файл, чтобы его можно было читать / оперировать. Этот код проверен и, как известно, работает правильно:
echo "$(gpg -d $(scp myuser@192.168.1.10:/home/myuser/test-gpg.txt.asc .;ls ./test-gpg.txt.asc))" | ssh myuser@192.168.1.10 'cat > /home/myuser/test-gpg.txt'
Обратите внимание, что вам все равно будет предложено ввести пароль после начала дешифрования . Но как только пароль введен, сценарий продолжается и внедряет расшифрованный поток gpg в файл на хосте DMZ.
И не забудьте сделать rm test-gpg.txt
дешифрованного файла после завершения операции, которая требовала, чтобы его содержимое было доступно для чтения.
Так что да, очень можно держать ваш секретный ключ отдельно от общедоступного хоста, на котором происходит шифрование, и ваш секретный ключ надежно спрятан в хосте за пределами этой DMZ. HTH- Терренс Хоулахан