SSH client wrapper for easily connecting to hosts
Project description
ssht
SSH client wrapper for easily connecting to hosts
This wrapper for the well known ssh client makes it possible to connect to the right server with just typing a part of the host name. The external sources are queried using the search term and those matching the string will be presented as an option.
Current supported sources:
- JSON file
- MySQL database
- JSON API endpoint
- Custom parser class
Installation
Install ssht using pip:
pip3 install ssht
or if you want the latest version:
pip3 install https://github.com/hkraal/ssht/archive/master.zip
Usage
ssht [-h] name [-4] [-6]
positional arguments:
name name of the host to connect to
optional arguments:
-h, --help show this help message and exit
-4 connect using ipv4 (skip dns if ipv4 address is defined)
-6 connect using ipv6 (skip dns of ipv6 address is defined)
Example of a connection
$ ssht host01
1) root@host01.exmaple.com
2) host01.exmaple.com
Connect to: 1
Connecting to "host01.example.com"
root@host01:~$
Configuration
Create ssht folder in home directory
mkdir ~/.ssht
Configure sources in ~/.ssht:
Define servers in JSON format:
{
"hosts": [
{
"port": "2222",
"hostname": "host01.example.com",
"ipv4": "192.168.0.2",
"user": "root"
},
{
"port": "2222",
"hostname": "host01.example.com",
"ipv4": "192.168.0.2",
}
]
}
Define servers in MySQL:
{
"config": {
"host": "localhost",
"user": "username",
"password": "passeword",
"database": "infra"
},
"query": "SELECT hostname, port, ipv4, ipv6, user FROM servers"
}
Define JSON API endpoint:
{
"config": {
"url": "http://ssht-api.dev",
"headers": {
"Authentication": "bla:huk"
}
}
}
Define custom class:
- Create a Python package containing your class
from ssht.plugins import Parser, Host
class ExampleParser(Parser):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._files = self.get_files('.custom')
def search(self, needle):
return [
Host(hostname='host01.example.com', ipv4='192.168.0.2'),
]
- Enable your class in
~/.ssht/config.json
{
"parsers":
[
"ssht.plugins.JsonParser",
"ssht_provider.ExampleParser"
]
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ssht-3.0.0.tar.gz.
File metadata
- Download URL: ssht-3.0.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.13 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a12b34d64fe31495e93e64ee9e6ef0b93db91b9e2a9c0d02f1fd17f0fb51658
|
|
| MD5 |
a5c8d2c48a3c9b6e75422c1b5ef29cb0
|
|
| BLAKE2b-256 |
2e119997304ccb67ea47475a3a6a6735ad791d955f5b3a6e759de34ab6c774be
|
File details
Details for the file ssht-3.0.0-py3-none-any.whl.
File metadata
- Download URL: ssht-3.0.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.13 Darwin/25.1.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5095394636cf8f2f2d673075a155b7be036183511114714379bc6309d19e6617
|
|
| MD5 |
85f7a08742b646d7dba14dab36b9357d
|
|
| BLAKE2b-256 |
6cc08618034e1f750cd955e04186916017c9cb2ce67ac7be35da4f832958db70
|