Teleconsole is a free open source and powerful command-line tool for sharing your Linux terminal session with people you trust. Your friends or team members can connect to your Linux terminal session via a command-line over SSH or via a browser over HTTPS protocol.
How does it work?
Teleconsole is a clustered SSH server with a built-in SSH proxy and was written in GoLang. You can use this tool to launch secure SSH sessions, perform forwarding of local TCP ports, and set up private proxies.
After you launch a teleconsole on your system, it opens a new shell session and prints the unique session ID as well as a WebUI link which you need to share with your friends, for them to join via a command line over SSH or from their web browsers over HTTPS.
Additionally, teleconsole also enables for forwarding local TCP ports, thus allowing your friends to access the web applications running on your localhost in case it’s behind NAT.
Warning: Teleconsole comes with certain security risks that you should take note of; it creates an SSH server accessible via public Internet during the Teleconsole session, this will practically give your keyboard to anyone with a link.
How to Install Teleconsole in Linux
The fastest and easiest way to install Teleconsole on your Linux distribution is to type the following command in your terminal.
$ curl https://www.teleconsole.com/get.sh | sh
Once Teleconsole installed, you can start it by typing the following command. This is very useful when you get stuck in some configuration on a Linux box behind NAT. Just invite and share your Linux session with your friend to help you.
$ teleconsole
Sample Output
Starting local SSH server on localhost... Requesting a disposable SSH proxy on as.teleconsole.com for tecmint... Checking status of the SSH tunnel... Your Teleconsole ID: asce38b0cbb9db97ef16562d1feffe5b84c9a204b8 WebUI for this session: https://as.teleconsole.com/s/ce38b0cbb9db97ef16562d1feffe5b84c9a204b8 To stop broadcasting, exit current shell by typing 'exit' or closing the window.
Next, copy the unique session ID printed or WebUI link and share it via a secure means with people you trust. Your friends can join in using the session ID as shown.
$ teleconsole join asce38b0cbb9db97ef16562d1feffe5b84c9a204b8
Or they can join by clicking on a WebUI link to access it via a web browser as shown in the following screenshot.
Now you and your friend both are using the same Linux terminal session running on your system, even if both of you are on different networks separated by NAT.
To stop broadcasting, exit the current shell by typing ‘exit’ command or closing the terminal window.
$ exit
How to Enable Port Forwarding
Another important feature of Teleconsole is, easy port forwarding, thereby enabling your friends to connect any TCP port running on your Linux system. Let’s assume you are working on a web project and it is currently accessible on your http://localhost:3000 . You can make your friends access it by forwarding port 3000 when you initiate a new session as shown.
$ teleconsole -f localhost:3000
Sample Output
Starting local SSH server on localhost... Requesting a disposable SSH proxy on as.teleconsole.com for tecmint... Checking status of the SSH tunnel... Your Teleconsole ID: asce38b0cbb9db97ef16562d1feffe5b84c9a204b8 WebUI for this session: https://as.teleconsole.com/s/ce38b0cbb9db97ef16562d1feffe5b84c9a204b8 To stop broadcasting, exit current shell by typing 'exit' or closing the window.
Now when your friends join this session, they will see a message as shown.
ATTENTION: tecmint has invited you to access port 3000 on their machine via localhost:9000
They can then access your application from their browsers using the URL http://localhost:3000.
Important: Since Teleconsole is just an SSH server, anyone you have shared your session ID with can request port forwarding without informing you, as shown.
$ teleconsole -f 3000:localhost:3000 join <session-id>
You can view the teleconsole help message with the following command.
$ teleconsole help
For more information, go to the Teleconsole Github repository.
That’s all! Teleconsole is a powerful SSH server to share your Unix/Linux terminal session with friends. In this article, we have explained how to use teleconsole to launch secure SSH sessions and share your terminal with friends and perform forwarding of local TCP ports.
If you have any questions or thoughts to share, use the comment form below to reach us.
Hi everyone! I want to ask a question, how can I run teleconsole on boot and log the session to a file? Is it possible?
@Fish,
Check this article, might it will help you to run teleconsole on system boot – https://www.tecmint.com/auto-execute-linux-scripts-during-reboot-or-startup/
Thank you!
Starting local SSH server on localhost…
Requesting a disposable SSH proxy on teleconsole.com for lbian…
Checking status of the SSH tunnel…
SSH tunnel cannot be established, please try again.
I can not use it on my system ubuntu18.04. is there anyone who can help me with that?
Nice and useful article !! how secure is that ??
@niraj
It is secure by default, but you can implement more security by setting up your own private proxies using Teleport: https://gravitational.com/teleport provided by the developers of Teleconsole.
Another Linux application that fills out a much-needed gap, as they say. Seriously, it has been possible to do things like this with Linux for years (e.g. VNC.) This seems to be somebody saying “let’s see if we can do it in Go”, and little else. And its security model is awful.
@WTR
Many thanks for sharing your thoughts with us.
Pretty useless for enterprise as it allows console over the public Internet breaking security policies for all. If users could use their own servers though and keep everything internal to their own network it may be useful for 1st/2nd/3rd line support collaboration.
@Anthony
If you are uncomfortable using publicly accessible SSH bastion on https://teleconsole.com, you can setup your own servers using Teleport: https://gravitational.com/teleport provided by the developers of Teleconsole.