Many times I needed "intelligent" way to grab key path from my key (and others I somehow trust for signing purposes) to other random key that gets to me.
Receiving keys for all signatures is quite expensive operation and you soon end with most of PGP keys on the world in your database. The best seems to fetch only needed keys. You can find path using PGP pathfinder & key statistics by Henk P. Penning. It's extremely useful site, where you can find many information about PGP keys.
So the logical step seems to be to write down script which will grab needed keys:
#!/bin/sh
if [ "$#" -lt 1 -o "$#" -gt 2 ] ; then
echo usage `basename $0` ID [gpgparam]
exit 1
fi
url=http://www.cs.uu.nl/people/henkp/henkp/pgp/pathfinder/mk_path.cgi
(
links -dump "$url?FROM=36E75604&TO=$1"
links -dump "$url?FROM=B3B2A12C&TO=$1"
links -dump "$url?FROM=65D0FD58&TO=$1"
) | grep -o '[0-9A-F]\{8\}' | sort -u | xargs gpg --recv-keys --no-auto-check-trustdb $2
gpg --check-trustdb $2
And special bonus for Sylpheed-Claws users. Here is action to call above script:
ID=`gpg --verify %p /dev/null 2>&1 | \
grep "key ID" | tr -d "[:space:]" | \
tail -c8`;echo "==== Fetching $ID ===="; \
~/bin/gpg_get_path $ID --no-tty