A simple web-based SSH client.

Overview

Kommander

A simple web-based SSH client. It supports:

  • entering SSH login details (including private key and custom ports) and connecting
  • user authentication (and 2FA!)
  • saving configurations to access them from anywhere

Install

Simply clone the repository:

git clone https://github.com/KingWaffleIII/kommander.git

Kommander depends on Python v3.10!

Configuration

Nginx

Kommander is reliant on Nginx so you must setup a configuration file or edit an existing one to server Kommander. Use the following as a template:

server {
	root /usr/share/nginx/html;
    server_name _;

    listen [::]:80;
    listen 80;

    # /STATIC IS NECESSARY

	location /static {
		expires -1;
		alias /usr/share/nginx/html/static;
	}

    # /SOCKET.IO IS NECESSARY

	location /socket.io {
        # choose whatever port you need - run.sh needs to run on the same port

		proxy_pass http://localhost:9000;
	}

	location / {
        # choose whatever port you need - run.sh needs to run on the same port

		proxy_pass http://localhost:8000;
	}
}

kommander/settings.py

You must fill out the CSRF_TRUSTED_ORIGINS list in kommander/settings.py with your domain(s). An example of this is commented out in the same file.

SMTP

Django has support for password reset emails. To use this feature, you must fill in the details of an email account in kommander/email_config.json. Additionally, you must also change init_sites.py and replace kommander.planetwaffle.net with your own production domain and dev.planetwaffle.net with your own development domain. These can be http://localhost.

Superuser Account

You must also change the environment variables in run.sh for python3.10 manage.py createsuperuser --no-input to your preference to set the Django administrator account. You need to supply an email and a password.

Usage

Simply run the run.sh bash script. It takes the following parameters:

-i: installs dependencies from the package-lock.json and requirements.txt.
It accepts yes or no.

-m: whether or not to enable developer mode. This will set kommander.settings.DEBUG to True, which is not appropriate for production, as well as define which site to use in init_sites.py. Anything that isn't dev will be assumed to run in production mode.

-p: the port that the Django server should run on.

-a: the port that the SSH gateway server should run on.

-s: whether or not to enable silent mode. This will disable all requests for input. Anything that isn't yes will be treated as no.

Menshen

Menshen is the underlying server that powers Kommander. It is the service that acts as a gateway (hence the name 'Menshen', after the Chinese divine guardians of doors and gates) between the user and the remote server.

Contributing

Contributions are welcome! If you find any issues, improvements or would like a feature added, feel free to submit an issue or a pull request. Please keep in mind, however, that Kommander is a simple web-based SSH client. I feel that v1.0.0 successfully meets all the criteria for a simple SSH client and therefore, am unlikely to add any new features. I will be happy to review any pull requests though.

License

Kommander and Menshen fall under the MIT license.

Owner
KingWaffleIII
o7 | 3rd King of Planet Waffle | Programmer ([Python/JS] web developer) | Never Beaten Minecraft in Survival | Weeb | AKA waffle.exe
KingWaffleIII
Un module simple pour demander l'accord de l'utilisateur dans une CLI.

Demande de confirmation utilisateur pour CLI Présentation ask_lib est un module pour le langage Python proposant une seule fonction; ask(). Le but pri

CallMePixelMan 7 May 09, 2022
A simple command line tool for changing the icons of folders or files on MacOS.

Mac OS File Icon Changer Description A small and simple script to quickly change large amounts or a few files and folders icons to easily customize th

Eroxl 3 Jan 02, 2023
Python3 parser for Apple's crash reports

pyCrashReport in intended for analyzing crash reports from Apple devices into a clearer view, without all the thread listing and loaded images, just the actual data you really need to debug the probl

7 Aug 19, 2022
Display Images in your terminal with python

A python library to display images in the terminal

Pranav Baburaj 57 Dec 30, 2022
Code for the Open Data Day 2022 publicbodies.org Nepal data scraping activities.

Open Data Day Publicbodies.org Nepal We've gathered on Saturday, 5th March 2022 with Open Knowledge Nepal in order to try and automate the collection

Augusto Herrmann 2 Mar 12, 2022
ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal

ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many forums the need of a similar utility for privacy-aware

Piña Colada 2.5k Dec 25, 2022
CLI to show end-of-life dates for tools and technologies.

Python 3.9+ interface to endoflife.date to show end-of-life dates for tools and technologies.

Hugo van Kemenade 32 Jan 06, 2023
Baseline is a cross-platform library and command-line utility that creates file-oriented baselines of your systems.

Baselining, on steroids! Baseline is a cross-platform library and command-line utility that creates file-oriented baselines of your systems. The proje

Nelson 4 Dec 09, 2022
Spotify Offline is a command line tool that allows one to download Spotify playlists in MP3 format.

Spotify Offline v0.0.2 listen to your favorite spotify songs, offline Overview Spotify Offline (spotifyoffline) is a command line tool that allows one

Aarush Gupta 1 Nov 28, 2021
NudeNet wrapper made to provide a simple cli interface to the library

Nudenet Wrapper. Small warpper script for NudeNet Made to provide a small and easy to use cli interface with the library. You can indicate a single im

1 Oct 20, 2021
Low-Cost Open Source Ventilator or PAPR

Last updated 2020/04/19 Low-Cost Open-Source Ventilator-ish Device or PAPR NOTE: This is currently an independent project not affiliated with any comm

Johnny Lee 1.7k Dec 21, 2022
Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20)

x64-shellcode-encoder Custom 64 bit shellcode encoder that evades detection and removes some common badchars (\x00\x0a\x0d\x20) Usage Using a generato

Cole Houston 2 Jan 26, 2022
Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.

Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.

Gianluca Gippetto 62 Dec 22, 2022
Arithmos cipher on CLI based

Arithmos Cipher CLI This is the CLI version of Arithmos Cipher. Install pip inst

LyQuid :3 1 Jan 16, 2022
A simple CLI to convert snapshots into EAVT log, and EAVT log into SCD.

EAVT helper CLI Simple CLI to convert snapshots into eavt log, and eavt log into slowly changing dimensions Usage Installation Snapshot to EAVT log EA

2 Apr 07, 2022
Tstock - Check stocks from the terminal

tstock - Check stocks from the terminal! 📈 tstock is a tool to easily generate stock charts from the command line. Just type tstock aapl to get a 3 m

Gabe Banks 502 Dec 30, 2022
PyDropper - pick colors everywhere

PyDropper - pick colors everywhere Downloads Settings PyDropper is an eyedropper

Herman Brunberg 2 Jan 04, 2022
Ssl-tool - A simple interactive CLI wrapper around openssl to make creation and installation of self-signed certs easy

What's this? A simple interactive CLI wrapper around openssl to make self-signin

Aniket Teredesai 9 May 17, 2022
This project contains the ClonedPerson dataset and code described in our paper "Cloning Outfits from Real-World Images to 3D Characters for Generalizable Person Re-Identification".

ClonedPerson This is the official repository for the ClonedPerson project, which contains the ClonedPerson dataset and code described in our paper "Cl

Yanan Wang 55 Dec 27, 2022
TerminalGV is a very simple client to display stats about your SNCF TGV/TER train in your terminal.

TerminalGV So I got bored in the train, TerminalGV is a very simple client to display stats about your SNCF TGV/TER train in your terminal. The "on-tr

Samuel 8 Dec 15, 2022