Implementing forward secrecy in OpenPGP with public key authentication I am trying to consider the feasibility of implementing an encrypted file sharing system, which both provides forward secrecy but also allows public key verification. I am stuck on the marriage between these two requirements that hopefully someone can help me out with.

In order to provide forward secrecy, I think a new random keypair should be generated for every file transfer request rather than two users sharing long-term public keys in advance. That way, if a private key for a particular file share is somehow compromised, it would only compromise that one file and not all of the files ever sent from that user.

However, the creation of a new keypair for every file share introduces a problem with public key verification. Traditionally speaking, the fingerprint of a public key should be verified in person and would remain verified for the lifetime of the keypair. If a new keypair is generated for every file share, then that means each new public key needs to be verified in person, which is infeasible.

Is it possible to utilize unique keypairs for every file share for forward secrecy while also securely verifying a public key is sent from the correct user only once?

Note that the system is meant for asynchronous file transfer, meaning the encrypted data would be uploaded to the cloud temporarily until downloaded by the recipient. However, file share requests would include a mandatory expiration date.
I'm going to describe two options that you have. There may be more that I don't know about.

The first is to use long-term signing keys to sign public diffie-hellman keys. Upload a bunch of those to the cloud. Then when someone wants to share a file with you, they: 


download your "next" signed public diffie-hellman key
verify the signature using OpenPGP, abort if it fails
generate their own new public diffie-hellman key
use your "next" key to generate a shared secret key (using their private diffie-hellman key), encrypt the file with that (you can actually use OpenPGP for this too, it would be the symmetric key for encryption)
sign their new public diffie-hellman key with their long term secret (using OpenPGP)
upload their signed public ephemeral diffie-hellman key, an index describing which of your temporary public keys they used, and the encrypted message
delete their new public diffie-hellman key, etc.


When you come along later to download the file, you:


download everything they uploaded in #5
check the digital signature using OpenPGP, if it fails abort
use your temporary private key for the given index to compute the shared secret key
decrypt the file
delete your temporary private key, their signed temporary public key, etc.


This is basically what Open Whisper Systems does for encrypted text messages.

Your other option is to throw away OpenPGP and do what is described in A Forward-Secure Public-Key Encryption Scheme and discussed in this answer*.

*Okay, that answer does mention my first proposal too as a "trivial (and hence awful) solution". I've added more detail and the link to Open Whisper Systems. Since Open Whisper Systems is doing it, it can't be too awful, right?