mirror of https://github.com/jumpserver/jumpserver
Fix v2.28.7 ssh key (#10399)
* feat: Update v2.28.7 * fix: 修复旧 ssh 私钥,解析失败的问题 * perf: 解决历史版本中因保存密码,造成 ssh 私钥解析失败问题 * fix: 动态用户可执行批量任务 --------- Co-authored-by: fit2bot <fit2bot@fit2cloud.com> Co-authored-by: Eric <xplzv@126.com>pull/10404/head
parent
a0994e2e12
commit
ec847d3ecb
|
@ -89,8 +89,7 @@ class AuthMixin:
|
||||||
def private_key_file(self):
|
def private_key_file(self):
|
||||||
if not self.private_key:
|
if not self.private_key:
|
||||||
return None
|
return None
|
||||||
private_key_str = parse_ssh_private_key_str(self.private_key,
|
private_key_str = self.get_private_key()
|
||||||
password=self.password)
|
|
||||||
if not private_key_str:
|
if not private_key_str:
|
||||||
return None
|
return None
|
||||||
project_dir = settings.PROJECT_DIR
|
project_dir = settings.PROJECT_DIR
|
||||||
|
@ -106,8 +105,11 @@ class AuthMixin:
|
||||||
def get_private_key(self):
|
def get_private_key(self):
|
||||||
if not self.private_key:
|
if not self.private_key:
|
||||||
return None
|
return None
|
||||||
return parse_ssh_private_key_str(self.private_key,
|
private_key_str = parse_ssh_private_key_str(self.private_key, password=self.password)
|
||||||
password=self.password)
|
if not private_key_str and self.password:
|
||||||
|
# 由于历史原因,密码可能是真实的密码,而非私钥的 passphrase,所以这里再尝试一次
|
||||||
|
private_key_str = parse_ssh_private_key_str(self.private_key)
|
||||||
|
return private_key_str
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def public_key_obj(self):
|
def public_key_obj(self):
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from .ansible.inventory import BaseInventory
|
|
||||||
|
|
||||||
from common.utils import get_logger
|
from common.utils import get_logger
|
||||||
|
from .ansible.inventory import BaseInventory
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'JMSInventory', 'JMSCustomInventory',
|
'JMSInventory', 'JMSCustomInventory',
|
||||||
|
@ -110,7 +110,10 @@ class JMSInventory(JMSBaseInventory):
|
||||||
|
|
||||||
if self.system_user:
|
if self.system_user:
|
||||||
self.system_user.load_asset_special_auth(asset=asset, username=self.run_as)
|
self.system_user.load_asset_special_auth(asset=asset, username=self.run_as)
|
||||||
return self.system_user._to_secret_json()
|
info = self.system_user._to_secret_json()
|
||||||
|
if self.run_as:
|
||||||
|
info['username'] = self.run_as
|
||||||
|
return info
|
||||||
else:
|
else:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue