I had a set of keys in my Mac OS X Keychain and no clue which public key and private key belonged together. This is how I figured out if a specific public key A paired with a private key B.
Export public key A to file A.pem, then find its modulus:
cat A.pem | sed 's/RSA //' | openssl rsa -noout -modulus -pubin > A.modExport private key B to file B.p12, then find its modulus:
openssl pkcs12 -nodes < B.p12 | openssl rsa -noout -modulus > B.modIf A.mod and B.mod are identical, the keys are a pair.
You could also extract a public key from the private key file, and compare the extracted public key to the exported public key. In other words:
openssl pkcs12 -nodes < B.p12 | openssl rsa -pubout > B.pemAgain, if A.pem and B.pem match, the keys are a pair.