My understanding is that id_rsa will get one prime and id_rsa.pub will get another prime.
Not quite. The public key has a modulus $r$ and an exponent $e$. The private key has the same modulus $r$ and an exponent $d$. They are chosen so that for any $a\leq r$, $$(a^e)^d\equiv a (\mod r)$$
It is possible to deduce $d$ from $e$ (and vice versa) if one knows the prime factors of $r$. We hypothesize that this is the only way of doing it. Since in general it is easy to factorise something that has lots of small prime factors we like to make the prime factors of $r$ as large as possible. Frequently this is described as making $r$ a product of two primes but this is by no means necessary. For example, in implementations where large-number modular arithmetic is much more efficient when the modulus is (say) just under a power of $2$, an implementor could choose to have a third, small prime to get $r$ into that form.
Length of keys
When creating the keys you can choose one of the exponents to be more or less anything you like, and then deduce the other one from it. In particular, you can choose one of them to be very small indeed, since the time taken for exponentiation is affected by the size of the exponent and the number of $1$ bits in it. $3$ and $65537$ are popular choices. Obviously such a short exponent would be easy to guess, so for this reason it is the public key that can benefit from this abbreviation - which, remember, is not mathematically necessary but merely a convenience for the sake of implementation.
So if this is done, the public key (with a very short exponent) will be practically half the length of the private one.
The passphrase
The paraphrase is of no great cryptographic interest. Its sole function is to say “Even if you accidentally let someone have a copy of the private key file, he won’t actually have the private key without guessing the pass phrase”.
id_rsa.pub
is the public key andid_rsa
is the private key. The public key contains the encryption exponent and the modulus. Either of the primes can be used to compute the private key from the public key so they must both be kept secret. $\endgroup$