
Getting Started!
This article is for you if you’re working with different clients and you have hard time remembering which ssh command you use to access a certain server. That was always a frustrating thing for me because there are different servers with different secret keys. I get confused all the time so I created myssh.
myssh is a simple tool that wraps all your remote machines’ server credentials in one place, so you can list, save, and connect to any remote machine that’s saved. The tool is in it’s early stages, so you’re all welcome to contribute.
Terms Learned :
- Python Packaging
- Database Change Management
Obstacles through the journey :
- Pointing to directories dynamically in ini files – the solution is to set the migration settings in the runtime of the program, which required me to use alembic config API.
- Executing commands after installing the package to initiate the database – solved by updating the package manger and building a wrapper class for installation.
Tools helped me :
Let’s Use it !!
Requirments :
- Python => 3.6
- pip
- virtualenv –
sudo -H pip install virtualenv
Installation :
First we create our own virtualenv.
ahmmkh@mypc:~$ virtualenv myssh -p python3
After successfully creating the virtual environment our terminal will look something like this:
(myssh) ahmmkh@mypc:~$
That’s totally awesome and now we can install our tool:
(myssh) ahmmkh@mypc:~$ pip install myssh
After successfully installing the package now you will be exposed to two commands:
sshentry – (save command )
This command will save the ssh server info into a local database in your machine so you can use it later to connect to it.
usage: sshentry [-h] [--host HOST] [--key_path KEY_PATH] [--user USER] name
positional arguments:
name name you want to provide for server
optional arguments:
-h, --help show this help message and exit
--host HOST, -s HOST name of host
--key_path KEY_PATH, -i KEY_PATH
path of key
--user USER, -u USER name of user
con – (connection command)
this command will connect you to your saved server
usage: con [-h] name
positional arguments:
name name of server
optional arguments:
-h, --help show this help message and exit
Example :
(myssh) ahmmkh@mypc:~$ sshentry myserver --host 41.235.219.135 -i /home/ahmmkh/key.pem --user ubuntu
Then after that you can connect to your server simply by typing:
(myssh) ahmmkh@mypc:~$ con myserver
And there you go! You will access the terminal of your remote machine and start working right away!
To contribute this the github repo:
https://github.com/learningdollars/ahmedk-myssh/
Time Taken: It took a total of about 9 hours to complete the above project.
This works for me. Cheers.
Also, can post what else can we do with myssh?
This works for me. Thanks for the GitHub link.
Also, can you add all the commands in the help (-h) .
Thanks again 😊
Reblogged this on Code Optimus.
What encryption protocol is used to save the sshentry here?
Some protocols like AES, ChaCha20, RSA, ECDSA, Ed25519..etc can be used to save ssh key instead of saving it as clear text.