É assim que eles são escritos; O OpenSSH emite o material da chave pública por meio de uma chamada PEM_write_RSAPublicKey(stdout, k->rsa)
na função do_convert_to_pem
de ssh-keygen.c
, enquanto o OpenSSL opera na determinada chave privada. Com o OpenSSH, imagino que a maioria dos casos seria converter a chave pública em um formato utilizável em algum servidor externo, com a chave privada permanecendo privada no sistema do cliente, portanto, operar na chave pública do par de chaves faz sentido . Com o OpenSSL, não há nenhuma preocupação com "obter uma chave pública em uma forma adequada para algum outro servidor SSH", para que o código opere diretamente na chave privada. Código diferente, intenções diferentes, resultados diferentes.