7 ms·
HyperShell: Spawn shells anywhere. Fully peer-to-peer
- piperswe 4y agoIt's kinda hard to tell what this actually does and why you'd want to use it. Is it an SSH alternative that punches through NAT?
- r3trohack3r 4y agoAlso having a hard time groking it, but from the README looks like maybe the equivalent to setting up a TOR node to front an ssh daemon and routing a shell through the onion network to get to a host behind a NAT. Edit: Ah yes, that appears to be exactly what they're doing. Looks like they're using a DHT for peer discovery and using nodes in the network as rendezvous points to get through NAT: https://github.com/holepunchto/hypershell/blob/main/lib/client-socket.js#L2 https://github.com/holepunchto/hypershell/blob/main/lib/clie... The code is incredibly straightforward for what it is doing. Expected the ./lib folder to be a lot more intimidating.
- x3haloed 4y agoIt seems interesting, but I’m having a hard time imagining what an appealing use case would be.
- hkt 4y agoI'm thinking the same thing. Is there some kind of circumstance where I'd want to use this instead of SSH? I'm hardly inclined to fix what isn't broken at the best of times, but the p2p element just seems weirdly superfluous.
- Firerouge 4y agoOpening shells on cellular devices perhaps, almost always they'll be on NAT, on an unfixed IP, which you can't port forward through.
- jeff_carr 4y agoIt would seem useful to control a large botnet of compromised hosts.
- hem777 4y agoAccessing a “home computer” behind a NAT you don’t control or has a dynamic IP, eg. computers/devices that only have mobile connection and many (most?) broadband home connections.
- the8472 4y agoNodes that are behind unconfigurable CGNATs usually have IPv6. So DDNS + listening on v6 + PMP could achieve same.
- hem777 4y ago*and if you don’t want to sign up for DDNS :)
- chatmasta 4y agoI sometimes need to connect to a CI runner to debug some CI build script. I made a (quick hack of a) tool [0] for doing that by creating an Onion service on the runner listening to SSHD, and printing a one-liner I can paste on my dev machine to connect to it via Tor. This sounds like basically the same idea, but using a DHT and hole punching instead of onion routing. [0] https://github.com/milesrichardson/shonion https://github.com/milesrichardson/shonion
- riedel 4y agoSeems so: I like the idea. Would be, however, to integrate with mosh [1] and feel much better if there was a well audited SSH implementation beneath the hole punching and rendezvous layer. [1] https://github.com/mobile-shell/mosh https://github.com/mobile-shell/mosh
- jamesrom 4y agoHyper.app: https://hyper.is/ https://hyper.is/ Hyper.sh: https://github.com/hyperhq https://github.com/hyperhq hyperapp: https://github.com/hyperapp/hyperapp https://github.com/hyperapp/hyperapp HyperApp: https://itunes.apple.com/app/apple-store/id1179750280?mt=8 https://itunes.apple.com/app/apple-store/id1179750280?mt=8 HyperTerminal: https://www.hilgraeve.com/hyperterminal/ https://www.hilgraeve.com/hyperterminal/ HyperShell: https://github.com/holepunchto/hypershell https://github.com/holepunchto/hypershell Adding this to the list https://news.ycombinator.com/item?id=14977382 https://news.ycombinator.com/item?id=14977382
- throwaway290 4y agoI wonder what thought process causes authors to go for name collision instead of something like p2pshell which is more descriptive and has zero google results... Neat tool, however.
- MrOwnPut 4y agoWell for this project, it uses technology from the hypercore protocol (formerly known as DAT). https://github.com/hypercore-protocol https://github.com/hypercore-protocol
- florbo 4y agoI guess the lesson here is you don't have to use any of the technologies in the project as part of the project name if you don't want to. Especially if the namespace is already somewhat saturated. For my next project, TCPHTTPHTMLCSSJSLinuxAlpineContainerGCPGKEBlog...
- MrOwnPut 4y agoBut the company who made this is also making the technologies in the project... Holepunchto is the company behind hyperprotocol, hypershell, hyperdrive, etc. So what's the lesson now?
- alex-robbins 4y agoIt took me a minute to realize this, but HyperShell seems to be (or can be thought of as) a demo app for the (previously unknown to me) "hyper ecosystem"---Hyperswarm, Hypercore, Hyperdrive, etc: https://docs.holepunch.to/ https://docs.holepunch.to/ . Perhaps an even tighter example than HyperShell is hyperbeam [1]: look at the usage section and API, and then note that it's all implemented in like 200 lines of code. I'm no expert in this field, but this stuff looks like legos for cutting-edge P2P solutions. I think this is the coolest thing I've seen since Tailscale. [1]: https://github.com/mafintosh/hyperbeam https://github.com/mafintosh/hyperbeam
- Nezteb 4y agoThe main app they seem to have built with it (so far) is a p2p chat app: https://keet.io/ https://keet.io/ I’m curious to see what else they’ll build!
- ComodoHacker 4y agoLooks like it's intended to replace SSH but no reason why is given. Is there more to read?
- aliasxneo 4y agoLooks interesting, but always a hard pass for me when I see CLI tools written in interpreted languages.
- dbrueck 4y agoJust curious, but why?
- brokenkebaby 4y agoHow do you work in terminal having that hard pass feeling? There are numerous CLI utils written in scripting (usually interpreted) languages. They do their job so well that some of them are here for decades already. Actually quite a lot of people don't even realize that many of CLI things they use are shell, or Perl scripts.
- aliasxneo 4y agoI suppose it depends on what work someone is doing. I'm an SRE and haven't had too many issues keeping my CLI dependencies to a minimum. It could just be my minimalist nature creeping in, though.