{"id":134321,"date":"2023-04-15T21:33:52","date_gmt":"2023-04-15T18:33:52","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=134321"},"modified":"2023-04-15T21:33:55","modified_gmt":"2023-04-15T18:33:55","slug":"share-linux-terminal-over-web-using-ttyd","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/share-linux-terminal-over-web-using-ttyd\/","title":{"rendered":"How To Share your Linux Terminal over the Web using ttyd"},"content":{"rendered":"\n<p>Linux Terminal, preferably known as a <em>command line interface<\/em> or <em>shell<\/em>, is a text-based interface used to interact with the Linux operating system. It allows users to issue commands to the computer and receive text-based responses. It also provides a robust set of tools and utilities that can be used to manage and customize a Linux system.<\/p>\n\n\n\n<p>The Linux Terminal is highly customizable and can be configured to suit the needs of individual users. It supports a wide range of commands and utilities, which can be used to perform tasks such as file management, networking, software installation, and system administration.<\/p>\n\n\n\n<p>Most Linux users prefer the terminal over the graphical user interface (GUI) because it offers more control and flexibility. However, it does require some knowledge of Linux commands and syntax, which can be challenging for beginners. With practice and experience, users can become proficient in using the Terminal and can leverage its power to efficiently manage their Linux systems.<\/p>\n\n\n\n<p>Linux Terminal Emulators are software applications that allow users to interact with the Linux command line interface (CLI) in a graphical environment. The most popular terminal emulators are GNOME Terminal, Konsole, Terminator, Tilix, Xfce Terminal e.t.c<\/p>\n\n\n\n<p>Today I will demonstrate how you can share your Linux Terminal over the Web using ttyd. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is ttyd?<\/h2>\n\n\n\n<p><strong>ttyd<\/strong> is a web-based terminal emulator and interactive shell that allows users to access a Linux command line interface (CLI) from a web browser. It uses the WebSocket protocol to provide a real-time connection between the browser and the Linux terminal. <\/p>\n\n\n\n<p>This lightweight and easy-to-use tool can be used to access a remote Linux system or to provide remote access to a local Linux system. It supports multiple clients at once, allowing multiple users to connect to the same session. One of the advantages of ttyd is that it does not require any additional software to be installed on the client side, as it runs entirely within a web browser. This makes it a convenient tool for remote system administration and troubleshooting.<\/p>\n\n\n\n<p>The other features and benefits associated with ttyd are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSL support based on&nbsp;OpenSSL&nbsp;\/&nbsp;Mbed TLS<\/li>\n\n\n\n<li>ZMODEM&nbsp;(lrzsz) \/&nbsp;trzsz&nbsp;file transfer support<\/li>\n\n\n\n<li>Fully-featured terminal with&nbsp;CJK&nbsp;and IME support<\/li>\n\n\n\n<li>Built on top of&nbsp;libuv&nbsp;and&nbsp;WebGL2&nbsp;for speed<\/li>\n\n\n\n<li>Sixel&nbsp;image output support (img2sixel&nbsp;\/&nbsp;lsix)<\/li>\n\n\n\n<li>Run any custom command with options<\/li>\n\n\n\n<li>Basic authentication support and many other custom options<\/li>\n\n\n\n<li>Open source software that can be installed on Linux, FreeBSD\/OpenBSD,&nbsp;OpenWrt, macOS, and Windows systems. It is also available as a command-line tool or as a Docker container.<\/li>\n<\/ul>\n\n\n\n<p>Let&#8217;s dive in!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">#1. Install ttyd on Your System<\/h2>\n\n\n\n<p>ttyd is a cross-platform application. This means that it can be easily installed on Linux, FreeBSD\/OpenBSD,&nbsp;OpenWrt, macOS, and Windows systems. In this guide, I will demonstrate how to install it on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>macOS<\/li>\n\n\n\n<li>Linux<\/li>\n\n\n\n<li>Windows<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">a. Install ttyd on Linux<\/h3>\n\n\n\n<p>There are three methods of installing ttyd on Linux systems. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using Binaries<\/strong><\/li>\n<\/ul>\n\n\n\n<p>This is the easiest method of them all. It involves pulling the latest binary file from the <a href=\"https:\/\/github.com\/tsl0922\/ttyd\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">releases<\/a>&nbsp;page. As of this guide, the latest version was <strong><em>1.7.3<\/em><\/strong>. So export the version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VER=$( curl --silent \"https:\/\/api.github.com\/repos\/tsl0922\/ttyd\/releases\/latest\"| grep '\"tag_name\"'|sed -E 's\/.*\"(&#91;^\"]+)\".*\/\\1\/')<\/code><\/pre>\n\n\n\n<p>Now pull the binary file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##For 64-bit\n<\/mark><\/em>curl -LO https:\/\/github.com\/tsl0922\/ttyd\/releases\/download\/$VER\/ttyd.x86_64\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##For aarch64\n<\/mark><\/em>curl -LO https:\/\/github.com\/tsl0922\/ttyd\/releases\/download\/$VER\/ttyd.aarch64\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##For arm\n<\/mark><\/em>curl -LO https:\/\/github.com\/tsl0922\/ttyd\/releases\/download\/$VER\/ttyd.arm\n\n<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">##For i686\n<\/mark><\/em>curl -LO https:\/\/github.com\/tsl0922\/ttyd\/releases\/download\/$VER\/ttyd.i686<\/code><\/pre>\n\n\n\n<p>Once downloaded, move the file to your PATH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mv ttyd.* \/usr\/local\/bin\/ttyd\nsudo chmod +x \/usr\/local\/bin\/ttyd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using snap<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The other option to install ttyd on Linux is by using snap. Once you have snap installed and running, you can execute the below command to install ttyd:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo snap install ttyd --classic<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Building from source<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The other method to install ttyd on Linux is by building it from source. On Debian\/Ubuntu, use the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev\ngit clone https:\/\/github.com\/tsl0922\/ttyd.git\ncd ttyd &amp;&amp; mkdir build &amp;&amp; cd build\ncmake ..\nmake &amp;&amp; sudo make install<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">b. Install ttyd on macOS<\/h3>\n\n\n\n<p>ttyd can be installed on MacOS using two methods.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using HomeBrew<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The command for this is:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>brew install ttyd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using MacPorts<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Use the below command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo port install ttyd<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">c. Install ttyd on Windows<\/h3>\n\n\n\n<p>You can install ttyd on Windows using the below methods:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using scoop<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Once scoop is installed on your Windows system, you can install ttyd with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scoop install ttyd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Using Binaries<\/strong><\/li>\n<\/ul>\n\n\n\n<p>You can also download a binary file for Windows. This can be achieved by visiting the <a href=\"https:\/\/github.com\/tsl0922\/ttyd\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">releases<\/a>&nbsp;page. Once the binary file has been downloaded, install it by double-clicking on the .EXE file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">#2. Using ttyd to access the Terminal over the Web<\/h2>\n\n\n\n<p>Once installed, there are several commands you can use with ttyd. First, verify the installation with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\"> ttyd -v<\/mark>\nttyd version 1.7.3-a8cae75<\/code><\/pre>\n\n\n\n<p>ttyd starts a web server on port <strong>7681<\/strong> by default. However, you can set the desired port to use with the <strong>-p<\/strong> flag. For example, starting ttyd on port 8080, the command will be:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\"> ttyd -p 8080 bash<\/mark>\n&#91;2023\/03\/03 13:27:56:2786] N: ttyd 1.7.3-a8cae75 (libwebsockets 4.3.2-unknown)\n&#91;2023\/03\/03 13:27:56:2786] N: tty configuration:\n&#91;2023\/03\/03 13:27:56:2786] N:   start command: bash\n&#91;2023\/03\/03 13:27:56:2786] N:   close signal: SIGHUP (1)\n&#91;2023\/03\/03 13:27:56:2786] N:   terminal type: xterm-256color\n&#91;2023\/03\/03 13:27:56:2787] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off\n&#91;2023\/03\/03 13:27:56:2787] N: elops_init_pt_uv:  Using foreign event loop...\n&#91;2023\/03\/03 13:27:56:2788] N: __lws_lc_tag:  ++ &#91;wsi|0|pipe] (1)\n&#91;2023\/03\/03 13:27:56:2788] N: __lws_lc_tag:  ++ &#91;vh|0|netlink] (1)\n&#91;2023\/03\/03 13:27:56:2788] N: __lws_lc_tag:  ++ &#91;vh|1|default||8080] (2)\n&#91;2023\/03\/03 13:27:56:2789] N: &#91;vh|1|default||8080]: lws_socket_bind: source ads 0.0.0.0\n&#91;2023\/03\/03 13:27:56:2789] N: __lws_lc_tag:  ++ &#91;wsi|1|listen|default||8080] (2)\n&#91;2023\/03\/03 13:27:56:2789] N:  Listening on port: 8080\n&#91;2023\/03\/03 13:28:23:6599] N: __lws_lc_tag:  ++ &#91;wsisrv|0|adopted] (1)\n&#91;2023\/03\/03 13:28:23:6604] N: HTTP \/ - 192.168.205.1\n&#91;2023\/03\/03 13:28:24:6584] N: HTTP \/token - 192.168.205.1\n......<\/code><\/pre>\n\n\n\n<p>Now access ttyd over the browser with the URL <a href=\"http:\/\/localhost:8080\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/IP_Address:8080<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"270\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd.png\" alt=\"\" class=\"wp-image-134328\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd.png 695w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-300x117.png 300w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/figure>\n\n\n\n<p>Now to add protection to the terminal, you can allow login with your system accounts on the web browser using the login flag as shown:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo ttyd login<\/mark>\n&#91;2023\/03\/03 13:44:36:3963] N: ttyd 1.7.3-a8cae75 (libwebsockets 4.3.2-unknown)\n&#91;2023\/03\/03 13:44:36:3965] N: tty configuration:\n&#91;2023\/03\/03 13:44:36:3967] N:   start command: login\n&#91;2023\/03\/03 13:44:36:3971] N:   close signal: SIGHUP (1)\n&#91;2023\/03\/03 13:44:36:3973] N:   terminal type: xterm-256color\n&#91;2023\/03\/03 13:44:36:3974] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off\n&#91;2023\/03\/03 13:44:36:3975] N: elops_init_pt_uv:  Using foreign event loop...\n&#91;2023\/03\/03 13:44:36:3976] N: __lws_lc_tag:  ++ &#91;wsi|0|pipe] (1)\n&#91;2023\/03\/03 13:44:36:3977] N: __lws_lc_tag:  ++ &#91;vh|0|netlink] (1)\n&#91;2023\/03\/03 13:44:36:3977] N: __lws_lc_tag:  ++ &#91;vh|1|default||7681] (2)\n&#91;2023\/03\/03 13:44:36:3978] N: &#91;vh|1|default||7681]: lws_socket_bind: source ads 0.0.0.0\n&#91;2023\/03\/03 13:44:36:3979] N: __lws_lc_tag:  ++ &#91;wsi|1|listen|default||7681] (2)\n&#91;2023\/03\/03 13:44:36:3979] N:  Listening on port: 7681\n..<\/code><\/pre>\n\n\n\n<p>Now access ttyd using the default port <a href=\"http:\/\/IP_Address:7681\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/IP_Address:7681<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"430\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-1.png\" alt=\"\" class=\"wp-image-134329\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-1.png 695w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-1-300x186.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-1-679x420.png 679w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2023\/03\/Share-your-Linux-Terminal-over-the-Web-using-ttyd-1-356x220.png 356w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/figure>\n\n\n\n<p>Log in using the system creds on your system to access the terminal. There are several other commands and flags to use. For help, use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">ttyd -help<\/mark>\nttyd is a tool for sharing terminal over the web\n\nUSAGE:\n    ttyd &#91;options] &lt;command> &#91;&lt;arguments...>]\n\nVERSION:\n    1.7.3-a8cae75\n\nOPTIONS:\n    -p, --port              Port to listen (default: 7681, use `0` for random port)\n    -i, --interface         Network interface to bind (eg: eth0), or UNIX domain socket path (eg: \/var\/run\/ttyd.sock)\n    -U, --socket-owner      User owner of the UNIX domain socket file, when enabled (eg: user:group)\n    -c, --credential        Credential for basic authentication (format: username:password)\n    -H, --auth-header       HTTP Header name for auth proxy, this will configure ttyd to let a HTTP reverse proxy handle authentication\n    -u, --uid               User id to run with\n    -g, --gid               Group id to run with\n    -s, --signal            Signal to send to the command when exit it (default: 1, SIGHUP)\n    -w, --cwd               Working directory to be set for the child program\n    -a, --url-arg           Allow client to send command line arguments in URL (eg: http:\/\/localhost:7681?arg=foo&amp;arg=bar)\n    -R, --readonly          Do not allow clients to write to the TTY\n    -t, --client-option     Send option to client (format: key=value), repeat to add more options\n    -T, --terminal-type     Terminal type to report, default: xterm-256color\n    -O, --check-origin      Do not allow websocket connection from different origin\n    -m, --max-clients       Maximum clients to support (default: 0, no limit)\n    -o, --once              Accept only one client and exit on disconnection\n    -B, --browser           Open terminal with the default system browser\n    -I, --index             Custom index.html path\n    -b, --base-path         Expected base path for requests coming from a reverse proxy (eg: \/mounted\/here, max length: 128)\n    -P, --ping-interval     Websocket ping interval(sec) (default: 5)\n    -6, --ipv6              Enable IPv6 support\n    -S, --ssl               Enable SSL\n    -C, --ssl-cert          SSL certificate file path\n    -K, --ssl-key           SSL key file path\n    -A, --ssl-ca            SSL CA file path for client certificate verification\n    -d, --debug             Set log level (default: 7)\n    -v, --version           Print the version and exit\n    -h, --help              Print this text and exit\n\nVisit https:\/\/github.com\/tsl0922\/ttyd to get more information and report bugs.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">#3. Create ttyd Systemd service On Linux<\/h2>\n\n\n\n<p>Now you can create a system service that can make it easier to start, enable and stop the service like any other system service.<\/p>\n\n\n\n<p>Create the system service file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/systemd\/system\/ttyd.service<\/code><\/pre>\n\n\n\n<p>Add the below lines:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Unit]\nDescription=ttyd_ComputingforGeeks.com\nAfter=network-online.target\n\n&#91;Service]\nType=simple\nExecStart=\/bin\/bash -c \"ttyd login\"\nRestart=always\nRestartSec=2\nTimeoutStopSec=5\nSyslogIdentifier=ttyd\n\n&#91;Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>Reload the system daemon:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload<\/code><\/pre>\n\n\n\n<p>No stop any service running on the default port 7681:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo killall -9 ttyd<\/code><\/pre>\n\n\n\n<p>Once stopped, start the service with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start ttyd<\/code><\/pre>\n\n\n\n<p>Enable the service to run on system boot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable ttyd<\/code><\/pre>\n\n\n\n<p>Check the status of the service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">systemctl status ttyd<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">\u25cf<\/mark> ttyd.service - ttyd_ComputingforGeeks.com\n     Loaded: loaded (\/etc\/systemd\/system\/ttyd.service; enabled; vendor preset: enabled)\n     Active: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">active (running)<\/mark> since Fri 2023-03-03 13:57:18 EAT; 23s ago\n   Main PID: 125928 (ttyd)\n      Tasks: 1 (limit: 4575)\n     Memory: 176.0K\n     CGroup: \/system.slice\/ttyd.service\n             \u2514\u2500125928 ttyd login\n\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2937] N:   close signal: SIGHUP (1)\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2938] N:   terminal type: xterm-256color\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2939] N: lws_create_context: LWS: 4.3.2-unknown, NET SRV H1 WS MbedTLS ConMon IPV6-off\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2940] N: elops_init_pt_uv:  Using foreign event loop...\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2941] N: __lws_lc_tag:  ++ &#91;wsi|0|pipe] (1)\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2942] N: __lws_lc_tag:  ++ &#91;vh|0|netlink] (1)\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2943] N: __lws_lc_tag:  ++ &#91;vh|1|default||7681] (2)\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2944] N: &#91;vh|1|default||7681]: lws_socket_bind: source ads 0.0.0.0\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2945] N: __lws_lc_tag:  ++ &#91;wsi|1|listen|default||7681] (2)\nBit 03 13:57:18 computingforgeeks.com ttyd&#91;125928]: &#91;2023\/03\/03 13:57:18:2946] N:  Listening on port: 7681<\/code><\/pre>\n\n\n\n<p>You can restart the service with the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart ttyd<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Verdict<\/h2>\n\n\n\n<p>That marks the end of this guide on how to share your Linux Terminal over the Web using ttyd. Now you can access your Linux shell from your browser anywhere within your network. I hope this was helpful.<\/p>\n\n\n\n<p>Related posts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/run-linux-terminal-on-web-browser-using-wetty\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Run Linux Terminal on Web Browser using Wetty<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/easily-change-linux-macos-terminal-theme-using-theme-sh\/\" target=\"_blank\" rel=\"noreferrer noopener\">Easily Change Linux\/macOS Terminal Theme using theme.sh<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/best-terminal-emulators-for-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">10 Best Terminal Emulators for Linux<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/install-tilix-tiling-terminal-emulator-on-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Tilix GTK3 tiling terminal emulator on Ubuntu \/ Debian<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Linux Terminal, preferably known as a command line interface or shell, is a text-based interface used to interact with the Linux operating system. It allows users to issue commands to the computer and receive text-based responses. It also provides a robust set of tools and utilities that can be used to manage and customize a &#8230; <a title=\"How To Share your Linux Terminal over the Web using ttyd\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/share-linux-terminal-over-web-using-ttyd\/\" aria-label=\"Read more about How To Share your Linux Terminal over the Web using ttyd\">Read more<\/a><\/p>\n","protected":false},"author":21,"featured_media":134329,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[299,50,832,9275,2666],"tags":[38368,38367],"class_list":["post-134321","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-linux-tutorials","category-tech","category-terminal","category-tips-tricks","tag-share-linux-terminal","tag-ttyd"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/134321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=134321"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/134321\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/134329"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=134321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=134321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=134321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}