This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.security.ssh_util

import tempfile
from typing import NamedTuple

from Crypto.PublicKey import RSA

[docs]class SSHKeys(NamedTuple): private_key: bytes public_key: bytes private_key_file: str public_key_file: str
[docs]def generate_ssh_keys() -> SSHKeys: """Returns a named tuple with private and public key and their paths.""" key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key(format='OpenSSH') with tempfile.NamedTemporaryFile(delete=False) as f: f.write(private_key) private_key_file = f.name with tempfile.NamedTemporaryFile(delete=False) as f: f.write(public_key) public_key_file = f.name return SSHKeys(private_key, public_key, private_key_file, public_key_file)