Réponses:
ssh-keygen -y
ne récupère pas réellement la clé publique, mais la lit simplement à partir de la clé privée, où elle est toujours attachée si elle est stockée au format OpenSSH.
Similaire pour OpenPGP: si elle est exportée d'une manière compatible avec OpenPGP, la clé privée contiendra toujours la clé publique - importez-la sur un ordinateur que vous possédez et en qui vous avez confiance, puis exportez la clé publique par la suite. Avec GnuPG, faites quelque chose comme:
gpg --import [private-key-file]
gpg --export [key-id]
gpg --export
par défaut, exportera uniquement la clé publique.
Si vous avez partagé la clé publique, il y a de fortes chances que vous la trouviez sur des serveurs à clé publique (par exemple, http://pgp.mit.edu ) ou qu'un de vos amis la possède sur son ordinateur (où il peut facilement la gpg --export
récupérer).
ssh-keygen
ne fonctionne pas sur les clés GnuPG (OpenPGP).