Skip to content
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

Provide built-in TLS/SSH security (instead of just SSH tunneling) #10

Open
domtra opened this issue Apr 21, 2018 · 2 comments
Open

Provide built-in TLS/SSH security (instead of just SSH tunneling) #10

domtra opened this issue Apr 21, 2018 · 2 comments

Comments

@domtra
Copy link

domtra commented Apr 21, 2018

Hi there. First of all: thanks for the work you put into this. I have been looking for viable solutions to the same problems you face and the performance of mirror is pretty great. Also for remote connections.

Nevertheless, have you tried xpra instead of x-forwarding? I could imagine that for a local setup this works rather well. On remote it can also be quite laggy. And for the unison not being real time part: It now ships with unison-fswatch and has the options repeat=watch. However, it does take longer to pick up the changes that mirror (at least in my simple test).

My actual question: Is there any means of authenticating a client / securing the server? I did not see any option for that, so I can only think of VPN or ssh tunneling for now. This of course does involve some extra setup and it would be nice to have an out-of-the-box solution for mirror. What are your thoughts about that?

@stephenh
Copy link
Owner

Hey, thanks for the question. Glad to hear you like mirror so far; interesting about the new unison options, I had not seen that.

For security, there are two options; one is what you mentioned, which is just SSH tunneling. This already works and the incantations are here:

https://github.com/stephenh/mirror#secure-communication

That's what I'd recommend. It does add an extra step each time to boot up mirror, e.g. remember to make sure your tunnel is started.

Technically grpc-java can do fancier SSL-based auth, which in theory would be 100% transparent to mirror (just changing a few lines of grpc-java setup on the client/server side), but the user setup is not straight forward, e.g. it involves generating key pairs, etc.:

https://github.com/grpc/grpc-java/blob/master/SECURITY.md#tls-with-openssl

At which point I'm not sure the complexity is worth it vs. just using tunneling which everyone probably already has keys/etc. for.

Granted, if you did go the grpc-java/TLS approach, then you wouldn't have to do the "remember to start a tunnel" each time, so it would probably pay off in terms of ease-of-usability in the long-term.

I've not actually tried the grpc-java/TLS approach (I've always been on LANs/VPNs with mirror so security was already there); if you wanted to do a spike on it and submit a PR with the code + command line options + README instructions, I'd definitely accept it. :-)

@stephenh stephenh reopened this Apr 21, 2018
@stephenh
Copy link
Owner

I'll reopen this and leave it as "provide built-in security" vs SSH tunneling.

@stephenh stephenh changed the title security question Provide built-in TLS/SSH security (instead of just SSH tunneling) Apr 21, 2018
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

No branches or pull requests

2 participants