123456789101112131415161718 |
- from apps.setting.models import GlobalConfig
- from paramiko.rsakey import RSAKey
- from io import StringIO
- from libs.ssh import generate_ssh_key
- def generate_and_save_ssh_key():
- keys = GlobalConfig.query.filter(GlobalConfig.name.in_(['ssh_private_key', 'ssh_public_key'])).all()
- if len(keys) == 0:
- key_obj = StringIO()
- key = RSAKey.generate(2048)
- key.write_private_key(key_obj)
- private_key, public_key = generate_ssh_key()
- GlobalConfig(name='ssh_private_key', value=private_key, desc='SSH私钥').add()
- GlobalConfig(name='ssh_public_key', value=public_key, desc='SSH公钥').save()
- return key, key.get_base64()
- else:
- raise Exception('Already has ssh key')
|