def auto_gen_auth(self): password = str(uuid.uuid4()) private_key, public_key = ssh_key_gen(username=self.username, password=password) self.set_auth(password=password, private_key=private_key, public_key=public_key)
def get(self, request, *args, **kwargs): private, public = ssh_key_gen(username=request.user.username, hostname='jumpserver') request.user.public_key = public request.user.save() response = HttpResponse(private, content_type='text/plain') filename = "{0}-jumpserver.pem".format(request.user.username) response['Content-Disposition'] = 'attachment; filename={}'.format(filename) return response
def auto_gen_auth(self): password = str(uuid.uuid4()) private_key, public_key = ssh_key_gen( username=self.username ) self.set_auth(password=password, private_key=private_key, public_key=public_key)
def auto_generate_terminal_host_key(sender, **kwargs): try: if Setting.objects.filter(name='TERMINAL_HOST_KEY').exists(): return private_key, public_key = ssh_key_gen() value = json.dumps(private_key) Setting.objects.create(name='TERMINAL_HOST_KEY', value=value) except: pass
def save(self, commit=True): # Because we define custom field, so we need rewrite :method: `save` system_user = super(SystemUserForm, self).save(commit=commit) password = self.cleaned_data['password'] private_key_file = self.cleaned_data.get('private_key_file') if system_user.auth_method == 'P': if password: system_user.password = password elif system_user.auth_method == 'K': if self.cleaned_data['auto_generate_key']: private_key, public_key = ssh_key_gen( username=system_user.name) logger.info('Generate private key and public key') else: private_key = private_key_file.read().strip() public_key = ssh_pubkey_gen(private_key=private_key) system_user.private_key = private_key system_user.public_key = public_key system_user.save() return self.instance
def gen_key(username): private_key, public_key = ssh_key_gen( username=username ) return private_key, public_key