Sshwifty & Upterm: SSH Everywhere, From Any Device
code
Code
Sshwifty & Upterm: SSH Everywhere, From Any Device
Good morning, everyone! Dimitri Bellini here, and welcome back to Quadrata, my channel dedicated to the world of open source and the IT that I love. Today, we’re diving into two stunning tools that can be incredibly useful for anyone working with Linux systems: Sshwifty and Upterm.
These aren’t just another set of utilities; they are powerful solutions that solve common problems related to remote shell access and collaboration. Whether you need to access your Raspberry Pi from a tablet or help a colleague debug an issue on their machine without complex VPNs, these tools have you covered. Let’s explore what makes them so special.
What are Sshwifty and Upterm?
At their core, both Sshwifty and Upterm are designed to give you flexible access to a Linux shell. However, they address very different needs.
Sshwifty: Your Web-Based SSH and Telnet Client
Imagine needing to quickly access a server, but you’re away from your primary workstation and only have a browser available. Sshwifty is the perfect solution for this scenario. It’s a web interface that allows you to connect to any machine via SSH or Telnet directly from your browser.
Key Features of Sshwifty:
- Browser-Based Access: No need for a local SSH client. Connect to your infrastructure from any device, including mobiles and tablets.
- Simple and Clean: It can be launched easily within a Docker container, keeping your setup tidy.
- User-Friendly Interface: Manage multiple sessions in tabs, and use special on-screen commands designed for touch devices.
Essentially, Sshwifty is your personal, go-to tool for having all your shells readily available, no matter where you are.
Upterm: Secure Terminal Sharing for Collaboration
Upterm tackles a different challenge: collaboration. Have you ever tried to help a colleague with a problem on their machine, but they are behind a NAT or a restrictive firewall? Upterm solves this by creating a secure tunnel to share a terminal session.
It works by using a central Upterm server (you can use the public one for testing or host your own) that acts as a proxy. The person sharing their terminal (the host) connects to the server, which then generates a secure SSH command for others (the clients) to join the session. It’s an excellent alternative to tools like tmate and is built from the ground up in Go.
Key Features of Upterm:
- NAT Traversal: Effortlessly share terminal sessions from machines behind firewalls without configuring port forwarding.
- Instant Collaboration: Perfect for remote pair programming, debugging, or demonstrating a CLI tool.
- Secure: Leverages the standard SSH protocol for secure connections. The client only needs a standard SSH command to connect.
The Main Differences at a Glance
To put it simply:
- Sshwifty is a client. You use your browser to connect to a remote server.
- Upterm is a host/server solution. You share your local terminal with a remote client.
- Sshwifty has a graphical web interface.
- Upterm operates through the command-line interface (CLI).
Getting Started: A Quick Guide
Both tools are straightforward to set up, but there are a few key points to keep in mind.
How to Run Sshwifty
The easiest way to get Sshwifty running is with Docker. However, there’s a crucial step: modern browsers require a secure HTTPS connection to establish a web-based SSH session. This means you need to generate a TLS certificate and pass it to the Docker container.
I also recommend copying the base configuration file from their Docker Hub page and mounting it to the container. Once you have your certificate and configuration ready, you can launch it and access the web interface on port 8182.
How to Use Upterm
Upterm consists of two main parts: the client you install on the machine you want to share and the Upterm server that facilitates the connection. For testing, you can use the public demo server they provide.
To start sharing your session, you simply run the upterm host command. This will connect to the server and provide you with an SSH connection string to share with your colleagues.
A critical tip: I spent some time troubleshooting this myself! For Upterm to work correctly, both the host and the client machines must have SSH keys generated. If you encounter a “Permission denied” error, this is the most likely culprit. Make sure your keys are set up properly.
Final Thoughts
Sshwifty and Upterm are like Swiss Army knives for anyone who works extensively with remote terminals. Sshwifty offers unparalleled convenience for accessing your machines from anywhere, while Upterm breaks down barriers to remote collaboration, making it incredibly simple to work together in a single terminal.
Knowing that these tools exist can be a lifesaver on the day you really need them. I highly recommend giving them a try and seeing how they can fit into your workflow.
What do you think of these tools? Have you used them before, or do you know of any alternatives? Let me know in the comments below! I’d love to hear your thoughts.
And if you found this overview helpful, don’t forget to subscribe to the channel for more content on open-source technology.
That’s all for today. See you next week!
A greeting from Dimitri, bye!
Find me here:
My YouTube Channel: Quadrata
ZabbixItalia Telegram Channel: Join the conversation
