wush.dev terminal sharing
Closed this issue · 4 comments
At the moment @coadler is working a version of wush.dev that can host terminals to a local wush serve
instead making it even easier to share terminals with everyone. The UX would be roughly:
$ wush serve
Auth key:
* Q29uZmlndXJlIGl0IHdpdGggYSByYW5kb20gc2Vj
OR share this:
* https://wush.dev/#Q29uZmlndXJlIGl0IHdpdGggYSByYW5kb20gc2Vj
Alongside the change we will try to make the terminal collaborative, so the web term could monitor whats happening in the real term and vice versa. It wills serve as more secure, faster alternative to tmate.
how would this work and how secure is it?
what if people abuse this service , are you going to require a sign-up mechanism?
I mean , if I go to this link will it open up a terminal in browser?
Does it also have the ability to ssh into it (Like how tmate does ? )
tmate requires tmux , and even if you install tmux , you need to configure it to work on a non root device , the other method is using junest and installing tmux from the arch repo and then tmate (which actually works but junest uses proot which uses qemu / a whole vm under the rug which is very expensive in terms of cpu)
@SerJaimeLannister Thanks for the comments!
how would this work and how secure is it?
It would work the same as wush
works currently. We're compiling wush
into webassembly and running that in the browser, so all of the same security mechanisms in wush
already would be true in the browser as well. The auth key is kept local and never touches our servers.
what if people abuse this service , are you going to require a sign-up mechanism?
The only part we're providing is the CDN, so there's really no abuse vectors. You're also welcome to self-host, as everything will be open source.
I mean , if I go to this link will it open up a terminal in browser?
Essentially, yes. It's wush ssh
if you ran it from the browser.
Does it also have the ability to ssh into it (Like how tmate does ? )
Yeah, it'll work exactly the same as the CLI. We're also adding an option for terminal sharing, so multiple users can collaborate on a single terminal.
tmate requires tmux , and even if you install tmux , you need to configure it to work on a non root device , the other method is using junest and installing tmux from the arch repo and then tmate (which actually works but junest uses proot which uses qemu / a whole vm under the rug which is very expensive in terms of cpu)
If wush
works on a machine currently it will support the new terminal sharing 👍. I'm also actively working on a few bugs on certain architectures.
To comment more on the security, we plan to store the encryption key in the URL fragment so it's never sent to a Coder server. The web client will then initiate the connection with Tailscale using their DERP over WebSocket directly.
There will be no sign ups. Transfers will continue being totally anonymous.
Unpinning this now, https://wush.dev is shipped, but we decided against terminal sharing. It does support browser shells, but spawns a new TTY for each connection.