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.
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.