The /projects/:id/remote_mirrors API supports ssh_public_key as an auth_method, but can't create a working SSH push mirror when used
The current Create a push mirror documentation for /projects/:id/remote_mirrors lists ssh_public_key as an accepted value for the auth_method when POST-ing. It does accept this value and create a mirror configuration on the project.
However, push mirrors created with ssh_public_key will always fail on sync with "Host verification failed", as the API doesn't also provide a way to set the host_keys / ssh_known_hosts required for it to work. This all works in the UI, when manually creating a mirror, as it provides automatic detection/manual entry of the host's fingerprints.
As a result, it's impossible to use the API to script the creation of working SSH push mirrors without resorting to non-API and problematic "fix-ups" - more details here.
This could be addressed if the /projects/:id/remote_mirrors API supported the supply of host_keys / ssh_known_hosts on POST and PUT calls.