feat: 配置私钥密码

This commit is contained in:
feng626
2021-12-30 10:47:46 +08:00
committed by Jiangjie.Bai
parent 90299a508c
commit 11fd9a6567
9 changed files with 255 additions and 235 deletions

View File

@@ -22,7 +22,6 @@ from django.db.models.fields.files import FileField
from .http import http_date
UUID_PATTERN = re.compile(r'[0-9a-zA-Z\-]{36}')
@@ -41,6 +40,7 @@ class Singleton(type):
class Signer(metaclass=Singleton):
"""用来加密,解密,和基于时间戳的方式验证token"""
def __init__(self, secret_key=None):
self.secret_key = secret_key
@@ -88,11 +88,16 @@ def ssh_key_string_to_obj(text, password=None):
return key
def ssh_pubkey_gen(private_key=None, username='jumpserver', hostname='localhost', password=None):
def ssh_private_key_gen(private_key, password=None):
if isinstance(private_key, bytes):
private_key = private_key.decode("utf-8")
if isinstance(private_key, string_types):
private_key = ssh_key_string_to_obj(private_key, password=password)
return private_key
def ssh_pubkey_gen(private_key=None, username='jumpserver', hostname='localhost', password=None):
private_key = ssh_private_key_gen(private_key, password=password)
if not isinstance(private_key, (paramiko.RSAKey, paramiko.DSSKey)):
raise IOError('Invalid private key')
@@ -230,4 +235,3 @@ def model_to_json(instance, sort_keys=True, indent=2, cls=None):
if cls is None:
cls = DjangoJSONEncoder
return json.dumps(data, sort_keys=sort_keys, indent=indent, cls=cls)