-
Notifications
You must be signed in to change notification settings - Fork 14
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
Restric access to self-hosted tty-proxy #8
Comments
Hey, @varac ! Sorry for the late reply. I don't think there's an easy answer to this in its current state, unless you start using an ssh tunnel for each There are overall 2 connections of a session: |
Hi @elisescu, I'd like to restrict my tty-proxy to a known group of people, similar to an ssh server where users authenticate agains a known_hosts file. |
Hi @varac ! Got it. Unfortunately I don't see an easy solution that doesn't involve convoluted |
I just want to limit any attack surface/possible abuse option. I haven't looked into the code and I don't want to imply any security concern, but I like to default to authentication whenever possible. |
Yeah, makes sense. I'll leave this open, and hopefully I'll have some time to look into something along these lines. If you don't mind, could you tell me a bit more about how you use it, and in what context (personal/professional, etc)? Also, what other features do you think would be useful to have? What have you used before (if any), and why did you give tty-share a try? I should put in place a better way to ask for feedback like this, but for now if you have a few mins to share your thoughts here, would be great. Thanks a lot :) |
E2E encryption would be a huge win in terms of trusting a 3rd party installation. However, I still would prefer self-hosting with restricting the user base with some kind of authentication. |
Hi We also started using the TTY-PROXY, the simplicity is very appealing and it works great! Now we also need to be able to AUTH requests to both layers:
Layer 1 being the most important as we don't want to allow external users Theoretically anyone with knowledge to our proxy URL can initiate endless sessions One of the ideas that come to mind is to provide the tty-share client with an --auth argument The proxy can use a hook, GET or POST to connect to an external API As such you will not need to provision the authentication, but just pass it along This will basically allow us to:
hope it makes sense, would love to hear what you think. |
Hey @liam-bilich, I think it depends on what you want to achieve in the end, and how many users you expect. If you have only a handful of users, another option (besides your suggestion) is maybe using ssh keys for layer 1 authentication. So the For layer 2, I believe the simplest would be to have the But of course, it very much depends on what you have in mind as the end goal, which btw I would be super happy and curios to hear more about (either here, or in a private chat). I'm always super interested in hearing more about how this is being used. Let me know what you think :) |
Hi @elisescu Thanks for the indepth reply. We already have JWT token based security model for our users (humans) The password mechanism you suggest is better then none of course, I think that a webhook for JWT is perhaps the simplest solution which should satisfy let know if have other thoughts... |
Yeah, I think that's reasonable. I have in mind a simple idea of how it can be done without "polluting" the tty-share and tty-proxy with knowledge about the outside. I'll try to find some time this period to write it down, and would be happy to hear some feedback on it |
First of all: Thanks for this awesome project!
I want to host my own tty-proxy but would like to restrict access to it to trusted people/clients.
tmate once used an authorized_keys file which checked connecting ssh clients for authorization.
How could this look like for tty-proxy ? Could a nginx instance running in front of tty-proxy handle authorization, and how would the clients deal with it ?
The text was updated successfully, but these errors were encountered: