Skip to content

Local SSH proxy over HTTPS to access servers in remote private networks #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 21 commits into
base: master
Choose a base branch
from

Conversation

achimnol
Copy link

@achimnol achimnol commented Jun 17, 2017

This is the client-side implementation of geofront-auth/geofront#21.

It uses async-generators heavily, so to use this feature Python 3.6 is required.
For backward-compatibility, I separated the proxy implementation as a separate module that is not imported in older Python versions and made it to work only when -p or --proxy argument is given to the original ssh command.

When first accessing a new destination server, the proxy assigns a randomly available TCP port for the local proxy. Next time, it reuses the stored TCP port for consistency with SSH's host fingerprint checks used by the system SSH agent as well as third-party security tools.
You can always change or remove those local proxy port mappings in the standard configuration directory set via dirspec module.

@achimnol
Copy link
Author

Hm.. there are Flake8 errors only shown in Travis CI builds but not in my local installation/invocation of flake8 command. Could you clarify the differences?

achimnol added 8 commits June 22, 2017 13:49
 * Now it uses a commad-arg template for generalized support of tunneling in different CLI commands (both ssh and scp)
 * If user part is specified in CLI remote aliases used as host names, it SKIPS authorization -- assuming that individual users would have configured their own authorization (e.g., personal keypairs to personal accounts in shared development server)
   - If the username is same to the remote's configured username, then it performs authorization as it has been doing.
 * The server should provide a GET version of /tokens/.../remotes/.../ API which returns a single "remote" dictionary containing the information of the given remote.
 * Also upgrade min/max protocol version, as we require the new remote GET API even when not using tunneling.
It is useful when using alternative logins without authorization (e.g., shared development servers)
 * Use revised masterkey URL path
 * Prevent Ctrl+C from producing too much unnecessary exception tracebacks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant