Unverified Commit beea715b authored by 老广's avatar 老广 Committed by GitHub

Merge pull request #135 from jumpserver/dev

Dev
parents 572e8551 42fbefd0
...@@ -37,12 +37,16 @@ class SSHConnection: ...@@ -37,12 +37,16 @@ class SSHConnection:
ssh = paramiko.SSHClient() ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sock = None sock = None
error = ''
if not system_user.password and not system_user.private_key: if not system_user.password and not system_user.private_key:
self.get_system_user_auth(system_user) self.get_system_user_auth(system_user)
if asset.domain: if asset.domain:
sock = self.get_proxy_sock_v2(asset) sock = self.get_proxy_sock_v2(asset)
if not sock:
error = 'Connect gateway failed;'
logger.error(error)
try: try:
try: try:
...@@ -81,9 +85,9 @@ class SSHConnection: ...@@ -81,9 +85,9 @@ class SSHConnection:
system_user.username, asset.ip, asset.port, system_user.username, asset.ip, asset.port,
password_short, key_fingerprint, password_short, key_fingerprint,
)) ))
return None, None, str(e) return None, None, error + '\n' + str(e)
except (socket.error, TimeoutError) as e: except (socket.error, TimeoutError) as e:
return None, None, str(e) return None, None, error + '\n' + str(e)
return ssh, sock, None return ssh, sock, None
def get_transport(self, asset, system_user): def get_transport(self, asset, system_user):
...@@ -126,9 +130,9 @@ class SSHConnection: ...@@ -126,9 +130,9 @@ class SSHConnection:
password=gateway.password, password=gateway.password,
pkey=gateway.private_key_obj, pkey=gateway.private_key_obj,
timeout=config['SSH_TIMEOUT']) timeout=config['SSH_TIMEOUT'])
except(paramiko.AuthenticationException, except (paramiko.AuthenticationException,
paramiko.BadAuthenticationType, paramiko.BadAuthenticationType,
SSHException): SSHException, socket.error):
continue continue
sock = ssh.get_transport().open_channel( sock = ssh.get_transport().open_channel(
'direct-tcpip', (asset.ip, asset.port), ('127.0.0.1', 0) 'direct-tcpip', (asset.ip, asset.port), ('127.0.0.1', 0)
......
...@@ -136,6 +136,7 @@ class ElFinderConnector: ...@@ -136,6 +136,7 @@ class ElFinderConnector:
return cmd return cmd
else: else:
self.response['error'] = 'No valid command found' self.response['error'] = 'No valid command found'
return None, None
def run(self, request): def run(self, request):
""" Main entry point for running commands. Attemps to run a command """ Main entry point for running commands. Attemps to run a command
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment