My google-foo failed me as most "how it works" sections related to fido are very... let's say... consumer-oriented.
So openssh supports U2F natively when using the appropriate elliptic-curve-based cipher (namely
ed25519-sk and the NIST one, do mind the
-sk: it makes the whole difference).
I could find no reference about how it actually works (I know there is a reference protocol documented by the fido alliance but it is certainly not browsable if you don't know where to look).
My very specific concern is that SSH keys can be created as non-resident. I.e. an handle is generated on disk but no copy is saved in the FIDO token (yubikey in this case to be specific). This means that ssh uses some kind of secret on the token (duh!) to transform that handle to an actual key. What I don't know is what secret is used for this. Is it using the
Yubico OTP key in one of the slots or is it using something hardcoded in the key (or something else entirely)?