Skip to main content

A Telegram Remote Shell Bot with HOTP authentication.

Project description

Build Status Coverage Status Version Status Python Versions Downloads

TeleRemBash is a Telegram Bot for executing scripts on a remote system, baked with TOTP Authentication for a secure and easy setup (QR codes).

To keep things simple TeleRamBash allows a single Telegram user after a successful TOTP Authentication to execute a pre-defined (bash) script by sending a command to the Bot in a Telegram chat, like this:

/do some-script optional-param1

ASCIINEMA

Usage

To install from pypi:

pip install telerembash

First create a configuration for your Telegram Bot instance by specifying the bot’s API_TOKEN and the Telegram username of the whitelisted user:

telerem init --api-token API_TOKEN --username USERNAME

this should create a telerem.config.yaml in the current directory and output a QR Code to be scanned in your TOTP Authenticator App (i.e. Google Authenticator, andOTP, etc).

To see all available options, try:

telerem --help

you can edit telerem.config.yaml by hand or call telerem init multiple times, to tweak the config. Note the scripts_root in the config - this is the location (absolute or relative to the current working directory) of the directory containing the script your bot will execute.

To start the bot:

telerem start --config config.yaml

Once your bot is running, you should add it in a chat. It will ignore all your messages until it sees a

/auth <code>

command, where <code> is the authentication code generated by your TOTP Authenticator.

And once you are successfully authenticated, you can execute a script by sending a Telegram message like this:

/do some-script-name param1 param2

The bot will reply to a /do command by looking under scripts_root for a file with the name some-script-name or some-script-name.sh and executing it (with the provided optional parameters).

Run as a Service (WIP)

You can also create a systemd service or a daemon script for running your bot in the background like this:

telerem install --systemd | sudo bash  # for systemd
telerem install --initd   | sudo bash  #   otherwise

this will:

  1. create a system user teleremd

  2. setup a python venv under /home/teleremd/

  3. create a service (either systemd or init.d):

  • systemd service unit /etc/systemd/system/teleremd.service

  • deamon script /etc/init.d/teleremd

  1. populate the daemon configuration under /etc/teleremd.config.yaml

and finally:

sudo systemctl daemon-reload   # for systemd
sudo systemctl start teleremd

NEWS

  • 21.Jan.2021 - available on pypi

  • 16.Jan.2021 - install as a systemd service (init.d still WIP)

  • 15.Jan.2021 - README: Usage instructions

  • 09.Jan.2021 - initial commit

LICENSE

MIT. See License File.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telerembash-0.2.8.tar.gz (13.5 kB view details)

Uploaded Source

File details

Details for the file telerembash-0.2.8.tar.gz.

File metadata

  • Download URL: telerembash-0.2.8.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.1

File hashes

Hashes for telerembash-0.2.8.tar.gz
Algorithm Hash digest
SHA256 7efdb918f4df0d88c594916c8231bce2461b206e1b24b9e0361bedaa71139e13
MD5 fdcea2389ea2f52dc5179a4df7b5c5b2
BLAKE2b-256 5aa8522e266f3f86e34781fbc225cd1d9f2d92de520fe15542f6238b7be16d87

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page