We’ve released a new capability: Terminal. Perhaps the easiest way to get a remote shell on your robots wherever they are, no VPN required, incl. file transfer right from the terminal itself.
Because it is web-based and connects via WebRTC it is better than VPN + SSH in every way:
- no setup required on the client machine, it hence works on all OSs and even your phone,
- it will always find the shortest-path to your robots, meaning it won’t go through the cloud if you are on the same network as your robot
- still end-to-end encrypted
- file upload via drag & drop
- file download by clicking on filenames in
ls
The UI component can be embedded anywhere you like and you can specify the device to connect to directly in the embedding code.
Please share your thoughts and questions if you have any.
Details: Terminal | Transitive Robotics
Demo
5 Likes
Very Interesting, i am curious as to how you leveraged WebRTC to do the ssh access. Also do you plan to integrate VPN in the future such that robots can be ssh’ed into from anywhere?
It’s not using SSH at all. The connection is established via WebRTC, and once connected it runs a pseudo terminal on the bot – actually the same as the one used by VS Code’s embedded terminal. Data flows via a data-channel on the webrtc connection. And, again, there is no need for VPN here. You can open that terminal to any robot running this capability anywhere in the world. Authentication is done via JSON web tokens.
If you want to know more, networking - How do WebRTC peers connect to each other if none have opened ports? - Stack Overflow Is a very nice and succinct description of how WebRTC manages to find the best connection between the peers.