The branch, twofactorauth has been updated via 6e4e92ff742a8547d2e55b5cd3774d1e7650c8dc (commit) from 80602371c96597c33b1699903532beebff716e2a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: x2go/sshproxy.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) The diff of changes is: diff --git a/x2go/sshproxy.py b/x2go/sshproxy.py index 1dadc18..fdbea3f 100644 --- a/x2go/sshproxy.py +++ b/x2go/sshproxy.py @@ -63,8 +63,51 @@ class X2goSSHProxy(paramiko.SSHClient, threading.Thread): session_instance=None, logger=None, loglevel=log.loglevel_DEFAULT, ): """\ - STILL UNDOCUMENTED - + Initialize an X2goSSHProxy instance. Use an instance of this class to tunnel X2go requests through + a proxying SSH server (i.e. to subLANs that are separated by firewalls or to private IP subLANs that + are NATted behind routers). + + @param username: login user name to be used on the SSH proxy host + @type username: C{str} + @param password: user's password on the SSH proxy host + @type password: C{str} + @param key_filename: name of a SSH private key file + @type key_filename: C{str} + @param local_host: bind SSH tunnel to the C{local_host} IP socket address (default: localhost) + @type local_host: C{str} + @param local_port: IP socket port to bind the SSH tunnel to (default; 22022) + @type local_port: C{int} + @param remote_host: remote endpoint of the SSH proxying/forwarding tunnel (default: localhost) + @type remote_host: C{str} + @param remote_port: remote endpoint's IP socket port for listening SSH daemon (default: 22) + @type remote_port: C{int} + @param known_hosts: full path to a custom C{known_hosts} file + @type known_hosts: C{str} + @param add_to_known_hosts: automatically add host keys of unknown SSH hosts to the C{known_hosts} file + @type add_to_known_hosts: C{bool} + @param hostname: alias for C{local_host} + @type hostname: C{str} + @param port: alias for C{local_port} + @type port: C{int} + @param sshproxy_host: alias for C{remote_host} + @type sshproxy_host: C{str} + @param sshproxy_port: alias for C{remote_port} + @type sshproxy_port: C{int} + @param sshproxy_user: alias for C{username} + @type sshproxy_user: C{str} + @param sshproxy_password: alias for C{password} + @type sshproxy_password: C{str} + @param sshproxy_key_filename: alias for C{key_filename} + @type sshproxy_key_filename: C{str} + + @param sshproxy_tunnel: a string of the format <local_host>:<local_port>:<remote_host>:<remote_port> + which will override---if used---the options: C{local_host}, C{local_port}, C{remote_host} and C{remote_port} + @type sshproxy_tunnel: C{str} + + @param ssh_rootdir: local user's SSH base directory (default: ~/.ssh) + @type ssh_rootdir: C{str} + @param session_instance: the L{X2goSession} instance that builds up this SSH proxying tunnel + @type session_instance: L{X2goSession} instance @param logger: you can pass an L{X2goLogger} object to the L{X2goSSHProxy} constructor @type logger: L{X2goLogger} instance @@ -166,7 +209,10 @@ class X2goSSHProxy(paramiko.SSHClient, threading.Thread): return _valid def run(self): + """\ + Start the SSH proxying tunnel... + """ if self.get_transport() is not None and self.get_transport().is_authenticated(): self.local_port = utils.detect_unused_port(bind_address=self.local_host, preferred_port=self.local_port) self.fw_tunnel = forward.start_forward_tunnel(local_host=self.local_host, @@ -185,9 +231,19 @@ class X2goSSHProxy(paramiko.SSHClient, threading.Thread): raise X2goSSHProxyException('SSH proxy connection could not retrieve an SSH transport') def get_local_proxy_port(self): + """\ + Retrieve the local IP socket port this SSH proxying tunnel is (about to) bind/bound to. + + @return: local IP socket port + @rtype: C{int} + """ return self.local_port def stop_thread(self): + """\ + Tear down the SSH proxying tunnel. + + """ if self.fw_tunnel is not None and self.fw_tunnel.is_active: self.logger('taking down SSH proxy tunnel via [%s]:%s' % (self.hostname, self.port), loglevel=log.loglevel_NOTICE) forward.stop_forward_tunnel(self.fw_tunnel) @@ -198,4 +254,8 @@ class X2goSSHProxy(paramiko.SSHClient, threading.Thread): self.close() def __del__(self): + """\ + Class desctructor. + + """ self.stop_thread() hooks/post-receive -- python-x2go.git (Python X2Go Client API) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "python-x2go.git" (Python X2Go Client API).