Linux terminal and console
Reach a Linux computer's command line or text console, with or without a desktop.
The headless service (Humble 0.11 and newer, Linux only) makes a Linux computer reachable without a desktop: a server, a computer with no monitor, or one whose desktop nobody is signed in to. It appears in your server account as a computer of its own, named <computer> (terminal) or <computer> (console), with an icon in the dashboard and the app's Computers list that says what connecting opens. On a computer with a desktop it runs next to the background service. The app's Computers list then shows the computer on one line, with a >_ button between Connect and the files button that opens its terminal (both services must run Humble Viewer 0.12 or newer); the dashboard lists them as two entries.
| Mode | Connecting opens | Runs as |
|---|---|---|
| Terminal (the default) | A shell, as with SSH: a command line on that computer, in a terminal in the session window. | The account you choose. The shell is that account's; sudo still asks for its password. |
| Console | The computer's text console, as its screen shows it (the login prompt, boot messages), typed into with your keyboard. Sign in at its login prompt as you would at the computer. | root, without any of root's special powers (no capabilities, a read-only system, only the console and keyboard devices). |
Set it up
Install Humble's package (see Install the app), then turn the service on for the account whose shell the terminal should give:
sudo humble headless setup --user alice # terminal mode, alice's shell
sudo humble headless setup --mode console # or: the text console
Without --user it uses the account that ran sudo. It refuses to give root shells unless you add
--allow-root. Then add it to your server account, as that account (or with sudo for console mode):
sudo -u alice humble --headless-service login https://remote.example.com USERNAME
sudo -u alice humble --headless-service add-this-computer
or enroll it with a code from the dashboard's Deploy page: sudo -u alice humble --headless-service enroll CODE.
Check it with humble --headless-service status, the same way: it shows the service's own ID and one-time password, which
work for direct connections too (port 21422).
sudo humble headless remove stops and disables it. Its identity stays in /var/lib/humble-headless, so setting it
up again brings back the same computer.
Connect
- In the app or the dashboard, connect to it like any computer. The session window shows a terminal (or the console) instead of a desktop; its Terminal menu copies the text and changes the text size. Ctrl+C interrupts the remote command, Ctrl+V pastes.
- From any terminal, signed in to the same server:
humble terminal 123 456 789opens the session right there, likessh. Leave by ending the shell (exitor Ctrl+D). - A terminal needs control access to the computer: view-only access cannot open one. Files can be sent and fetched in terminal sessions as in any other.
- Connecting needs Humble 0.11 or newer on your side; an older version is told to update.
Security notes
- Opening a terminal is as powerful as an SSH login to that account: grant access to it on your server only to people who should have that.
- Every terminal opened and closed is logged on the computer (
journalctl -u humble-headless) with who opened it and as which account. Ending the session ends the shell. - The shell starts with a clean environment, as a login shell: nothing of the service's leaks into it.
- Console mode gives what the screen shows, which is normally a login prompt: the console's own sign-in protects it.