Как получить открытый ключ из закрытого в gpg без использования локального хранилища (в ~/.gpg)?

Посмотрите на Subj: Как получить открытый ключ из закрытого в gpg без использования локального хранилища (в ~/.gpg)?

Это решение не удовлетворяет требованиям:

  $ gpg --import priv.key
  $ gpg --export $KEYID >pub.key
  $ gpg --delete-secret-and-public-key $KEYID

person gavenkoa    schedule 05.10.2011    source источник


Ответы (1)


Я не понимаю, чем вас не устраивает решение, которое вы уже придумали, но если вы по каким-то причинам очень хотите не возиться со своими личными брелоками, могу предложить другое:

gtmp=$(mktemp -d)
gpg --homedir $gtmp --import key
gpg --homedir $gtmp --export key > pub.gpg
rm -rf $gtmp

Или как удобную функцию BASH:

# Requires keyfile as 1st argument; optional 2nd argument is output file
gpg_priv_to_pub(){
  g=$(mktemp -d)
  infile=$1
  [[ $# > 1 ]] && outfile=$2 || outfile=${1%.*}_pub.gpg
  gpg --homedir $g --import "$infile" 2>/dev/null
  KEYID=$(gpg --homedir $g -k --with-colons | awk -F: '/^pub/{print $5}')
  gpg --homedir $g --export $KEYID > "$outfile"
  rm -rf $g
  echo "Public key $KEYID extracted from '$infile' and saved to '$outfile'"
  }
person rsaw    schedule 04.03.2012