from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa def generate_ssh_keypair(): """ Generates a new 2048 bit RSA public key in OpenSSH format and private key in PEM format. """ private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) public_ssh = private_key.public_key().public_bytes( encoding=serialization.Encoding.OpenSSH, format=serialization.PublicFormat.OpenSSH, ) private_pem = private_key.private_bytes( encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.TraditionalOpenSSL, encryption_algorithm=serialization.NoEncryption(), ) return public_ssh, private_pem